PHP:致命错误:未捕获的错误:在布尔值上调用成员函数 execute() [重复]
Posted
技术标签:
【中文标题】PHP:致命错误:未捕获的错误:在布尔值上调用成员函数 execute() [重复]【英文标题】:PHP: Fatal error: Uncaught Error: Call to a member function execute() on boolean [duplicate] 【发布时间】: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);
【问题讨论】:
你的连接是如何初始化的?抛出的异常消息是什么? 【参考方案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" 代替。您只是移动了错误。以上是关于PHP:致命错误:未捕获的错误:在布尔值上调用成员函数 execute() [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter 致命错误:在布尔值上调用成员函数 result()
PHP“致命错误:未捕获错误:调用成员函数prepare()为null”
PHP 致命错误:未捕获的错误:调用字符串中的成员函数 diff()
致命错误:未捕获的错误:在 null 上调用成员函数 select()
致命错误:未捕获的错误:在 C:\xampp\phpMyAdmin\libraries\classes\DatabaseInterface.php:1544 中的 null 上调用成员函数存在()