【问题标题】:PHP: Fatal error: Uncaught Error: Call to a member function execute() on boolean [duplicate]PHP:致命错误:未捕获的错误:在布尔值上调用成员函数 execute() [重复]
【发布时间】:2019-11-27 05:22:54
【问题描述】:

帮我解决这个错误

php 脚本:

在包含 $stmt->execute($params) 的行中发现错误

$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
$passwd = filter_input(INPUT_POST, 'passwd', FILTER_SANITIZE_STRING);

$sql = "SELECT * FROM users WHERE username=:username";
$stmt = $db->prepare($sql);

// bind parameter ke query
$params = array(
    ":username" => $username

);

$stmt->execute($params);

$user = $stmt->fetch(PDO::FETCH_ASSOC);

【问题讨论】:

  • 你的连接是如何初始化的?抛出的异常消息是什么?

标签: php mysql sql pdo


【解决方案1】:

你可以试试这个

$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
$passwd = filter_input(INPUT_POST, 'passwd', FILTER_SANITIZE_STRING);
$sql = "SELECT * FROM users WHERE username=:username";
$stmt = $db->prepare($sql);
$stmt->bindParam('username',$username);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);

【讨论】:

  • 因为它似乎是 $db->prepare($sql) 返回 false 而不是语句,所以这只会让您的 "Call to a member function bindParam() on boolean" 代替。您只是移动了错误。
猜你喜欢
  • 2019-12-23
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 2018-05-06
相关资源
最近更新 更多