【发布时间】:2013-12-18 13:53:40
【问题描述】:
我正在尝试将此信息插入到我的数据库中,我为 SELECT 查询设置了几乎相同的代码,并且它们可以正常工作。我尝试的任何 INSERT 查询都不起作用。
这个函数返回 true,我已经回应了这个函数创建的查询,并使用 PHPMyAdmin 运行 SQL 查询,它将显示在数据库中,但是当通过这个 php 代码执行它时,INSERT 永远不会出现在数据库。
编辑:我注意到设置为自动递增的列之一 (orderID) 每次运行此函数时都会增加,但无论出于何种原因,查询实际上并未放入表中。
This Image 显示orderID 缺少 29 个,我通过执行 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;
}
连接到数据库的用户拥有数据库的完全权限,所以这不应该是问题
【问题讨论】:
-
将
return false更改为die($mysqli->error())看看会弹出什么。你没有说明你如何处理返回值,所以我假设你没有正确检查失败。 -
global $mysqli;你真的需要那个吗? -
如果您的
userID列设置为AUTO_INCREMENT,它可能会不起作用。如果是,请删除userID,和'$user_id',并检查orderDate列的设置。可能有很多东西。 -
疯狂猜测:你在提交交易吗? (影响 MyISAM 表的 DML 指令是自动提交的,但影响 InnoDB 表的指令可以稍后提交)
-
我们不应该在这里“拍照”,编程不应该是“让我们尝试一些我知道不会改变任何东西,也许它会起作用”。 ...但我也有罪,我承认:D
标签: php mysql sql insert mysqli