【发布时间】:2016-02-07 07:44:09
【问题描述】:
我必须向 MySQL 数据库发送一个 INSERT 查询,假设所有变量都设置正确,我正在使用此代码:
$check_alrd_sent = $mysqli -> query("SELECT * FROM reviews WHERE id_prod =" . $id_prod . " AND id_user = " . $current_usr . " LIMIT 1");
$check = mysqli_fetch_all($check_alrd_sent);
if ($check != NULL) {
$check_err = 1;
} else {
$ins_rev = $mysqli -> query("INSERT INTO `reviews` (`ID` ,`ID_prod` ,`ID_user` ,`review` ,`stars`) VALUES (NULL , " . $id_prod .", " . $current_usr . ", " . $review . ", " . $rating . ");");
$ins_result = 1;
}
mysqli_free_result($check_alrd_sent);
$ins_result 变量已正确设置为结果,正如我使用 var_dump() 所见,但现在行已插入数据库中。
奇怪的是,如果我调用MySQL错误日志可以清楚地看到插入正确发送到数据库为:
42 Query INSERT INTO `reviews` (`ID` ,`ID_prod` ,`ID_user` ,`review` ,`stars`) VALUES (NULL , 11, 1, asd, 4)
但它没有出现在表格中。
有什么建议吗?谢谢
【问题讨论】:
-
首先 - 将所有字符字段值用引号括起来,SELECT 是否总是返回 NULL?我看不到打开mysql连接的代码,可能是你没有正确选择数据库?
-
@Wizard 我正在使用
$mysqli = new mysqli ($DBHost, $DBUser, $DBPass, $DBName) or die("Could not connect: " . mysql_error());,所有变量都已正确设置。我正在使用 PHPmyAdmin,生成的 SELECT 显示一个空表。我试图追加`dbname,reviews`但没有任何改变
标签: php mysql mysqli sql-insert