Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQL脚本没有显示错误,但不会插入行_Php_Mysql_Insert_Mysqli - Fatal编程技术网

PHP MySQL脚本没有显示错误,但不会插入行

PHP MySQL脚本没有显示错误,但不会插入行,php,mysql,insert,mysqli,Php,Mysql,Insert,Mysqli,下面是我的代码行,它应该插入行: $query=mysqli_query($con,"insert * into orders values ( ".$user_index.",".$order_date.", ".$_POST['item_number'].",".$_POST['price'].", ".$_POST['tax'].",'".$_POST['pay_method']."') "); 我的连接也不会抛出任何错误。另外,它肯定执行后的代码行。这是我第一次在

下面是我的代码行,它应该插入行:

$query=mysqli_query($con,"insert * into orders 
values
(   ".$user_index.",".$order_date.",
    ".$_POST['item_number'].",".$_POST['price'].",
    ".$_POST['tax'].",'".$_POST['pay_method']."')
");

我的连接也不会抛出任何错误。另外,它肯定执行后的代码行。这是我第一次在PHP和MySQL中使用日期数据类型,但我将以yyyymmdd格式插入日期。我很沮丧。我在网上到处查。你能帮帮我吗?

你的问题太多了。查看文档以了解正确的语法

mysqli_query($con,"INSERT INTO table_name (field1,field2,field1) values ('value1','value2','value3')");
针对你的问题

$query=mysqli_query($con,"INSERT INTO orders (your fields Here ) VALUES (
    '".$user_index."', '".$order_date."', '".$_POST['item_number']."',
    '".$_POST['price']."', '".$_POST['tax']."', '".$_POST['pay_method']."'
    )");

查询的主要问题是*。这对于INSERT语句无效

其次,为了避免SQL注入漏洞,应该使用带有绑定参数的预处理语句。您可能还应该使用某种形式的错误检查。比如说

$stmt = $con->prepare('INSERT INTO `orders` VALUES (?, ?, ?, ?, ?, ?)');
if ($stmt === false) {
    throw new Exception($con->error);
}
$stmt->bind_param('ssssss', $user_index, $order_date, $_POST['item_number'],
        $_POST['price'], $_POST['tax'], $_POST['pay_method']);

if (!$stmt->execute()) {
    throw new Exception($stmt->error);
}

仅供参考,在不知道列的数据类型的情况下,我假设它们都是字符串。

首先必须从insert查询中删除*


第二,如果要插入这样的值,请确保表中的列数与此处插入的值数相同。本例6

首先删除*号。第二,在SQL语句中直接使用并插入$_POST变量实际上是SQL注入的一扇大门……是的,比如@Borniet说这是真的,但他只是想知道为什么他的查询不起作用。你有没有办法捕捉代码中的mysqli错误?比如“要么死”?您试图将行插入的表的布局是什么?仅供参考,如果您按表顺序插入每一列,则无需在此处指定字段