通过php将数据插入DB时失败

时间:2014-01-07 20:25:29

标签: php mysql database transactions

所以我有这个练习,我需要通过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); 

?>

它连接到数据库,因为我能够看到游戏表中的内容,但我不知道为什么我会得到一个常量错误。

提前致谢!

1 个答案:

答案 0 :(得分:0)

以下是您的代码已修改,因为该交易不完整

 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,不要在insert语句中使用连接的值。

修改

您在发布商字段中的双引号后缺少引号

 .$_POST['release_date'].",'"
 .$_POST['publisher']."' // <--- this one