【问题标题】:Error in php sql statement ($stmt2 is returning false but I dont know why)php sql 语句中的错误($stmt2 返回 false,但我不知道为什么)
【发布时间】:2015-08-13 06:20:40
【问题描述】:

我在准备好的语句中收到此错误(在非对象上调用成员函数 bind_param()),我知道这意味着 sql 语句中存在一些错误,但我根本看不到任何错误.我已经盯着这个看了一段时间了,我看不到错误,我也尝试回显 sql 语句,它似乎很好。谁能告诉我这里哪里出错了?

    $sql2 =
        "INSERT INTO $this->table_1 ($this->key_1, $this->key_2, $this->key_3, $this->key_4, $this->key_5)
         VALUES (?, ?, ?, ?, ?);";

    $stmt2 = $this->connection->prepare($sql2);
    $stmt2->bind_param("isssi", $1, $2, $3, $4, $5);
    $stmt2->execute();
    $stmt2->close();

谢谢

【问题讨论】:

  • 打印$sql2 的值可能有助于调试此问题
  • 是的,我试过了,结果我的表名是保留字。我的生命中有 2 个小时......

标签: sql prepared-statement sql-insert bindparam


【解决方案1】:

终于找到了我的问题,原来我的表名“keys”是一个保留字,为了逃避它,我不得不使用像这样的反斜杠“``keys`”(忽略单词之前的第二个反引号,所以把它变成如果烦人地只有一个反引号,则为代码块)。如果将来有人遇到此问题并且您确定您的代码是正确的,请尝试转义您的列名或表名

【讨论】:

    猜你喜欢
    • 2013-08-23
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多