通过php将数据插入数据库时失败
因此,我有一个练习,我需要通过php插入将数据插入(并执行各种其他操作,我成功地完成了这些操作)到一个非常基本的数据库中,但我似乎无法这样做,我完全不知道为什么 这是我的代码(免责声明,我才刚刚开始学习php,所以任何建议都将不胜感激!)通过php将数据插入数据库时失败,php,mysql,database,transactions,Php,Mysql,Database,Transactions,因此,我有一个练习,我需要通过php插入将数据插入(并执行各种其他操作,我成功地完成了这些操作)到一个非常基本的数据库中,但我似乎无法这样做,我完全不知道为什么 这是我的代码(免责声明,我才刚刚开始学习php,所以任何建议都将不胜感激!) 这是您的代码修改,因为该事务未完成 include 'Connect.php'; mysql_query("START TRANSACTION"); $query = "INSERT INTO game ( product_id, produc
这是您的代码修改,因为该事务未完成
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);
包括“Connect.php”;
mysql_查询(“启动事务”);
$query=“插入游戏(产品id、产品名称、多人游戏、pegi、流派、发行日期、发行id、开发名称)
值(''
.$\u POST['product\u id']。“,”
.$\u POST['product\u name']。“,”
.$\u POST['multiplayer']。“,”
.$邮政['pegi'].“,”
.$(体裁).“,”
.$发布日期['release_date']。“,”
.$\u POST['publisher']。“,”
.$_POST[“开发者”]。“)”;
//执行查询
$queryexe=mysql\u query($query);
如果($queryexe){
mysql_查询(“提交”);
打印(“成功!”;
}否则{
mysql_查询(“回滚”);
打印(“错误””;
}
//断开与数据库的连接
mysql_close($connectionstring);
您正在执行一个提交,没有请求一个事务,并且在mysql出错或失败的情况下没有回滚
建议您开始使用mysqli,不要在insert语句中使用连接的值
编辑
在publisher字段中的双引号后缺少引号
.$_POST['release_date'].",'"
.$_POST['publisher']."' // <--- this one
$\u POST[“发布日期]。”,“
..$\u POST['publisher'].“//我只是从print收到错误消息,但我的室友正在忙于处理一个类似的db,并在本地连接到它(我使用的是我大学的远程服务器),他收到了一条“未定义变量”错误消息。release\u date
,除非它是一个数字,否则需要加引号。引用dates的话:“我只是在乞求学习php,所以任何建议都将不胜感激”-mysql$_发布查询?字体标签??!丢掉你正在使用的教程,重新开始@你应该使用mysqli或pdo。产品id不应该出现在quotationYeah,我知道commit是关于事务的,我有点忘了。但是,完整的事务代码没有修复错误。@persongr它报告给您的错误是什么?添加这个$queryexe=mysql\u query($query)或die(mysql\u error())代码>并在此处打印浏览器返回的错误。“您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,在第2行“我在developer字段输入了DICE”附近使用正确的语法。@persongr检查我对答案的编辑,希望它能帮助我修复它,并找到另一个小语法,但是现在连接超时了!
.$_POST['release_date'].",'"
.$_POST['publisher']."' // <--- this one