我正在尝试将此信息插入到我的数据库中,我对SELECT查询实际上具有相同的代码设置并且它们有效。我尝试的任何INSERT查询都不起作用。
这个函数返回true,我回应了这个函数创建的查询,并且已经使用PHPMyAdmin运行它将在数据库中显示的SQL查询,但是当通过这个php代码执行它时,INSERT永远不会出现在数据库中。
编辑:我注意到我的一个列(orderID
)被设置为自动递增IS每次运行此函数时都会增加,但无论出于何种原因,查询实际上都没有放入表中
This Image显示缺少29个orderID
,我通过执行2个PHPMyAdmin INSERT查询获得了这些表结果,然后使用该函数获得了一个,并使用PHPMyAdmin获得了一个。我的功能是否可以删除插入?
function add_to_cart($user_id, $product_id, $quantity) {
global $mysqli;
if($result = $mysqli->query("INSERT INTO orders (userID, productID, quantity, orderDate) VALUES ('$user_id', '$product_id', '$quantity', NOW())")){
return $result;
}
return false;
}
连接到数据库的用户拥有数据库的完全权限,因此不应该是问题
答案 0 :(得分:1)
我可以在$mysqli->commit();
$mysqli->query()
来解决问题
我需要这样做,因为我更改了默认选项并且"SET AUTOCOMMIT = 0"
解决这个问题让我删除了$mysqli->commit()
function add_to_cart($user_id, $product_id, $quantity) {
global $mysqli;
if($result = $mysqli->query("INSERT INTO orders (userID, productID, quantity, orderDate) VALUES ($user_id, $product_id, $quantity, NOW())")){
if (!$mysqli->commit()) {
print("Transaction commit failed\n");
}
return $result;
}
die($mysqli->error());
}
答案 1 :(得分:0)
根据同类的其他众多问题判断,您只是在错误的数据库中查找结果。
说到功能本身,它是臃肿和不安全的。
您应该使用准备好的陈述。
function add_to_cart($user_id, $product_id, $quantity) {
global $pdo;
$sql = "INSERT INTO orders (userID, productID, quantity, orderDate) VALUES (?, ?, ?, NOW())";
$pdo->prepare($sql)->execute(func_get_args());
}
返回任何内容都没有意义,因为在出现错误的情况下会抛出异常。即使有,但仍然没有像IF result == true THEN return true ELSE return false
这样的重言式。您只需返回结果本身即可。