所以我有这个练习,我需要通过 php 插入将数据插入(并执行各种其他操作,我成功地完成了这些)数据到一个非常基本的数据库中,但我似乎无法这样做,而且我完全不知道为什么。
这是我的代码(免责声明,我才刚刚开始学习 php,所以任何建议将不胜感激!):
<?php
include 'Connect.php';
$query = "INSERT INTO game ( product_id, product_name, multiplayer, pegi, genre, release_date, dis_id, dev_name)
VALUES ('"
.$_POST['product_id']."','"
.$_POST['product_name']."','"
.$_POST['multiplayer']."','"
.$_POST['pegi']."','"
.$_POST['genre']."',"
.$_POST['release_date'].",'"
.$_POST['publisher'].",'"
.$_POST['developer']."')";
//execute query
$queryexe = mysql_query($query);
if ($queryexe) {
mysql_query("COMMIT");
print("<p><font size=\"+1\">Success!</font></p>");
} else {
print("<p><font size=\"+1\">Error</font></p>");
}
//disconnect from database
mysql_close($connectionstring);
?>
它连接到数据库,因为我可以看到游戏表中的内容,但我不知道为什么我不断收到错误。
提前致谢!
最佳答案
这是您因交易未完成而修改的代码
include 'Connect.php';
mysql_query("START TRANSACTION");
$query = "INSERT INTO game ( product_id, product_name, multiplayer, pegi, genre, release_date, dis_id, dev_name)
VALUES ('"
.$_POST['product_id']."','"
.$_POST['product_name']."','"
.$_POST['multiplayer']."','"
.$_POST['pegi']."','"
.$_POST['genre']."','"
.$_POST['release_date']."','"
.$_POST['publisher']."','"
.$_POST['developer']."')";
//execute query
$queryexe = mysql_query($query);
if ($queryexe) {
mysql_query("COMMIT");
print("<p><font size=\"+1\">Success!</font></p>");
} else {
mysql_query("ROLLBACK");
print("<p><font size=\"+1\">Error</font></p>");
}
//disconnect from database
mysql_close($connectionstring);
您正在执行提交,但没有开始事务,并且在出现 mysql 错误或故障时没有回滚,
作为建议,开始使用 mysqli 并且不要使用插入语句中连接的值。
编辑
发布商字段中的双引号后缺少一个引号
.$_POST['release_date'].",'"
.$_POST['publisher']."' // <--- this one
关于php - 通过php向DB插入数据失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20981175/