【问题标题】:MySQL query not inserting data (php)MySQL查询不插入数据(php)
【发布时间】:2014-07-21 04:27:04
【问题描述】:

抱歉,可能是一个愚蠢的代码错误,但我的网站未能将数据插入数据库。 来自 submit.php:

$questionID = 2;
$connection = mysqli_connect("localhost", "root", "password", "db_name");
mysqli_query($connection, "INSERT INTO data ('questionID') VALUES ('$questionID')");

我的表名为“data”,第一个字段名为“questionID”,类型为 int。

【问题讨论】:

  • 列名应该用反引号(`),而不是引号(')....只引用字符串文字....当您使用MySQLi时,为什么不使用绑定变量?
  • 感谢您的修复。什么是绑定变量?
  • 您可以自己修复这个“愚蠢的代码错误”,只需 checking for errors

标签: php mysql apache mysqli xampp


【解决方案1】:

使用绑定值是执行此插入的更好方法:

$questionID = 2;
$dbh = mysqli_connect("localhost", "root", "password", "db_name");
$insert = $dbh->prepare("insert into data (questionID) values (?)");
$insert->bind_param("i", $questionID);
$insert->execute();

More reading

使用绑定值的原因有很多,主要参数是防止注入和防止硬解析。

【讨论】:

  • @SverriM.Olsen - 从什么时候开始推荐值得一票否决的良好实践.....尤其是当 OP 在回答我自己的原始评论时提出的问题是“什么是绑定变量? "
  • @MarkBaker 这个答案甚至没有触及问题所在(单引号)。推荐好的做法很好,但您应该首先回答实际问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
相关资源
最近更新 更多