【问题标题】:PDO prepare returns False whit sqlite [duplicate]PDO准备返回False whit sqlite [重复]
【发布时间】:2018-12-16 05:50:48
【问题描述】:

我想将数据插入到存储在 SQLite 中的数据库中,但是当我将查询传递给 pdo prepare 时,它​​会返回 false 并给我以下消息:致命错误:未捕获的错误:调用布尔值的成员函数 execute()。

这是我的 PHP 代码:

$ql = "INSERT INTO customer_in (`ledger_id`, `daybook_id`, `description`, `amount`, `date`) VALUES (31, 141, '', 5000, '07/02/2018')";

try {
      $con = new Connection();
      $conn = $con->connect();
      $conn->exec("SET NAMES utf8");
      $stmt = $conn->prepare($q1);
      $results = $stmt->execute();
    }catch (PDOException $e) {
      // this is rolback fanction
      $conn->rollback();
      echo "query is not exe";
    }

【问题讨论】:

    标签: php sqlite pdo


    【解决方案1】:

    这是因为$conn->prepare($q1); 返回了 FALSE。问题是您将查询字符串命名为 $ql 而不是 $q1,然后在下面的代码中调用了 $q1它。

    这段代码应该可以工作:

    $q1 = "INSERT INTO customer_in (`ledger_id`, `daybook_id`, `description`, `amount`, `date`) VALUES (31, 141, '', 5000, '07/02/2018')";
    
    try {
          $con = new Connection();
          $conn = $con->connect();
          $conn->exec("SET NAMES utf8");
          $stmt = $conn->prepare($q1);
          $results = $stmt->execute();
        }catch (PDOException $e) {
          // this is rolback fanction
          $conn->rollback();
          echo "query is not exe";
        }
    

    【讨论】:

    • 谢谢,我已经尝试并更改了我的变量的名称,但它仍然无法正常工作并显示相同的错误:致命错误:未捕获的错误:调用布尔值的成员函数 execute()。
    猜你喜欢
    • 2015-07-13
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 2014-09-15
    相关资源
    最近更新 更多