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错误?比如“要么死”?您试图将行插入的表的布局是什么?仅供参考,如果您按表顺序插入每一列,则无需在此处指定字段