SQL - 插入 INTO 不会产生任何结果


SQL - Insert INTO results in nothing

我一直在尝试让这个插入正常工作,所以我解决了未定义的变量和索引问题,现在我想我快到了。

下面是代码:


<?php
session_start();
require "../dbconn.php";
$username = $_SESSION['username'];
$query1 = "SELECT user_table.user_id FROM user_table  WHERE user_table.username ='".$username."'";    
$query2 = "SELECT department.department_id FROM department, user_table, inventory
       WHERE user_table.user_id = department.user_id
       AND department.department_id = inventory.department_id";
//Copy the variables that the form placed in the URL
//into these three variables
$item_id = NULL;
$category = $_GET['category'];
$item_name = $_GET['item_name'];
$item_description = $_GET['item_description'];
$item_quantity = $_GET['quantity'];
$item_quality = $_GET['quality'];
$item_status = NULL;
$order_date = $_GET['order_date'];
$invoice_attachment = NULL;
$edit_url = 'Edit'; 
$ordered_by = $username;
$user_id = mysql_query($query1) or die(mysql_error());
$department_id = mysql_query($query2) or die(mysql_error());
$price = $_GET['price'];
$vat = $_GET['vat%'];
$vat_amount = $_GET['vat_amount'];
$create_date = date("D M d, Y G:i");
$change_date = NULL;
//set up the query using the values that were passed via the URL from the form
$query2 = mysql_query("INSERT INTO inventory (item_id, category, item_name, item_description, item_quantity, item_quality, item_status, order_date,
invoice_attachment, edit_url, ordered_by, user_id, department_id, price,     vat, vat_amount, create_date, change_date VALUES(
'".$item_id."',
'".$category."',
'".$item_name."',
'".$item_description."',
'".$item_quantity."',
'".$item_quality."',
'".$item_status."',
'".$order_date."',
'".$invoice_attachment."',
'".$edit_url."',
'".$ordered_by."',
'".$user_id."',
'".$department_id."',
'".$price."',
'".$vat."',
'".$vat_amount."',
'".$create_date."',
'".$change_date."')")
or die("Error: ".mysql_error());
header( 'Location:../myorders.php');
?>

错误:错误:SQL 语法有错误;检查与您的MySQL服务器版本相对应的手册,了解在第2行的"VALUES( '', 'adasd', 'dsadsa', 'dsad', 'sadsad', '' 附近使用的正确语法

谁能让我知道我哪里出错了?:(

已经盯着这个看了3-5个小时:(

您实际上并没有尝试将任何数据插入表中。您只以字符串形式将查询创建并分配给变量。您需要使用函数mysql_query来实际运行代码。

如前所述,如果您没有为每一列提供数据(以正确的顺序),您还必须指定要在 MySQL 查询中插入数据的列。在这里你可以看看MySQL插入语法。

我还敦促您考虑使用MySQLi或MySQL PDO扩展来与MySQL数据库进行通信,因为MySQL扩展已被弃用。在此处查看更多信息和比较。

在这里,您只将值分配给 var $query:

$query = "INSERT INTO inventory VALUES (
'".$item_id."',
'".$category."',
'".$item_name."',
'".$item_description."',
'".$quantity."',
'".$quality."',
'".$item_status."',
'".$order_date."',
'".$invoice_attachment."',
'".$edit_url."',
'".$ordered_by."',
'".$price."',
'".$vat."',
'".$vat_amount."',
'".$create_date."',
'".$change_date."')"
or die("Error: ".mysql_error());

您实际上并不运行查询。

尝试:

$query = mysql_query("INSERT INTO inventory (column_name1, column_name 2, column_name3 ... the column name for each field you insert) VALUES (
    '".$item_id."',
    '".$category."',
    '".$item_name."',
    '".$item_description."',
    '".$quantity."',
    '".$quality."',
    '".$item_status."',
    '".$order_date."',
    '".$invoice_attachment."',
    '".$edit_url."',
    '".$ordered_by."',
    '".$price."',
    '".$vat."',
    '".$vat_amount."',
    '".$create_date."',
    '".$change_date."')")
    or die("Error: ".mysql_error());

此外,您应该使用 mysqli_* 或任何其他 PDO,因为 mysql_* 函数已弃用

如果您没有插入所有列,则需要指定要插入的列。喜欢这个:

INSERT INTO Table(Column1, Column6) VALUES (Value1, Value6)

插入中缺少列名