【问题标题】:PDO insert not inserting with multiple valuesPDO插入不插入多个值
【发布时间】:2014-08-12 23:40:01
【问题描述】:

所以我有一些数据要尝试使用 PDO 输入。这是我的代码的样子

$DATA = $con->prepare("INSERT INTO users (key, ip) VALUES (:key, :ip)");
$DATA->bindValue(':ip', $ip, PDO::PARAM_STR);
$DATA->bindValue(':key', $key, PDO:PARAM_STR);
$DATA->execute();

问题是它不会进入数据库。只有当我做一个这样的值时它才有效

$DATA = $con->prepare("INSERT INTO users (key) VALUES (:key)");

这正常吗?我是否为每个变量做单独的陈述?

我的数据库

+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| key   | varchar(255)     | YES  |     | NULL    |                |
| ip    | varchar(255)     | YES  |     | NULL    |                |
+-------+------------------+------+-----+---------+----------------+

我得到了错误

致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 /Users/mike/Desktop/Mail/index.php:37 中的 'key, ip) VALUES ('53a786577de99', 'E6pdpExv6q363baea9cba210afac6d7a556fca596e30c' at line 1' at line 1' 附近使用正确的语法堆栈跟踪:#0 /Users/mike/Desktop/Mail/index.php(37): PDOStatement->execute() #1 {main} 在第 37 行的 /Users/mike/Desktop/Mail/index.php 中抛出

【问题讨论】:

  • 我没有注意到这一点。但只是修好了。它仍然不起作用......@Chris
  • 不。数据库也包含所有行。当我在发布代码后尝试执行echo 时,它不会返回结果。当我删除 PDO:PARAM_STR 时,我可以在它之后运行代码。 @zerkms
  • @user302975: "nope" --- 你怎么知道的?我没有看到您正在检查任何 PDO 错误
  • @user302975:除非您的 PDO 设置为抛出错误,否则不会。这里的情况可能不是这样。检查stackoverflow.com/a/2104519/251311
  • KEYreserved word,必须用反引号括起来。

标签: php mysql pdo


【解决方案1】:

如果我记得的话,我认为 KEY 是一个保留字……试试回勾号。

【讨论】:

    猜你喜欢
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 2011-08-21
    • 2011-11-10
    • 2014-08-12
    • 2014-11-26
    • 2016-11-29
    相关资源
    最近更新 更多