Fatal error: Uncaught Error: Call to undefined method PDOStatement::bind_param() in D:\PHPsever\phpstudy\phpstudy_pro\WWW\qimo_test\main\user\user_sign_check.php on line 20 ( ! ) Error: Call to undefined method PDOStatement::bind_param() in D:\PHPsever\phpstudy\phpstudy_pro\WWW\qimo_test\main\user\user_sign_check.php on line 20 Call Stack # Time Memory Function Location 1 0.0019 442456 {main}( ) ...\user_sign_check.php:0这个报错怎么解决
时间: 2023-06-30 19:20:39 浏览: 307
这个错误是因为 `PDOStatement` 类并没有 `bind_param` 方法。`bind_param` 方法是属于 mysqli_stmt 类的。如果你想要使用 `bind_param` 方法,你需要使用 mysqli 扩展而不是 PDO 扩展。如果你已经确定要使用 PDO 扩展,那么你需要使用 `bindValue` 方法来绑定参数,例如:
```
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$stmt->bindValue(':username', $username);
$stmt->bindValue(':password', $password);
$stmt->execute();
```
这里使用了命名占位符 `:username` 和 `:password` 来代替问号占位符。然后使用 `bindValue` 方法来绑定参数。
相关问题
Fatal error: Uncaught Error: Call to undefined method PDOStatement::bind_result() in D:\PHPsever\phpstudy\phpstudy_pro\WWW\qimo_test\main\user\user_sign_check.php on line 22 ( ! ) Error: Call to undefined method PDOStatement::bind_result() in D:\PHPsever\phpstudy\phpstudy_pro\WWW\qimo_test\main\user\user_sign_check.php on line 22 为什么摆错
这个错误是因为 `PDOStatement` 类并没有 `bind_result` 方法。`bind_result` 方法是属于 mysqli_stmt 类的。如果你想要使用 `bind_result` 方法,你需要使用 mysqli 扩展而不是 PDO 扩展。
如果你已经确定要使用 PDO 扩展,那么你需要使用 `fetch` 方法来获取查询结果,并指定返回的结果格式。例如,可以使用 `PDO::FETCH_ASSOC` 参数将结果作为关联数组返回:
```
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password");
$stmt->execute([':username' => $username, ':password' => $password]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user) {
// 用户名和密码正确
} else {
// 用户名或密码不正确
}
```
在这个示例中,我们使用 `prepare` 方法来准备 SQL 查询语句,然后使用 `execute` 方法来执行查询,并传递一个参数数组。最后,我们使用 `fetch` 方法将结果集中的第一行作为关联数组返回,并赋值给 `$user` 变量。如果 `$user` 变量不为 false,则说明用户名和密码正确,否则说明用户名或密码错误。
Fatal error: Uncaught Error: Call to a member function bind_param() on bool in D:\phpstudy_pro\WWW\web\insert.php:12 Stack trace: #0 {main} thrown in D:\phpstudy_pro\WWW\web\insert.php on line 12
这是一个致命错误,出现在D:\phpstudy_pro\WWW\web\insert.php文件的第12行。错误说明在该行代码中尝试调用一个对象的bind_param()方法,但是该对象的值为布尔类型(即false或者null),没有绑定正确的参数。产生该错误的原因可能是代码有误或数据传输出现了问题。
阅读全文