[英]Cannot use object of type PDOStatement as array in
I have this Error: Fatal error: Uncaught Error: Cannot use object of type PDOStatement as array in C:\xampp\htdocs\seth\Plugins\login\php\completedetails.php:28 Stack trace: #0 {main} thrown in C:\xampp\htdocs\seth\Plugins\login\php\completedetails.php 在第 28 行
幾天前它是功能,但現在它通過了,¿我應該做什么?,我留下了代碼
session_start();
$_SESSION['id'];
$id = $_SESSION['id'];
$name = $_POST['name'];
$password = $_POST['password'];
$password = password_hash($password, PASSWORD_DEFAULT);
$team = $_POST['team'];
if($name == "" && $password == "" && $team == ""){
return false;
}
else {
require './conectar.php';
$resultset = $conn->prepare("SELECT * FROM users WHERE id = '$id' LIMIT 1");
$resultset->execute();
$resultkey = $resultset->fetch();
if($resultkey !== false) {
$update = "UPDATE users SET name = :name, password = '$password' WHERE id = '$id' LIMIT 1";
$up = $conn->prepare($update);
$up->bindParam(':name', $_POST['name'], FILTER_SANITIZE_SPECIAL_CHARS);
$up->execute();
$_SESSION['name'] = $up['name'];
}
}
您需要首先獲取查詢結果:
$up = $conn->prepare($update);
$up->bindParam(':name', $_POST['name'], FILTER_SANITIZE_SPECIAL_CHARS);
$up->execute();
$result = $up->fetch();
$_SESSION['name'] = $result['name'];
框架中的fetch
方法可能會返回 object 而不是數組。 在這種情況下,您可以像這樣訪問 name 屬性:
$result->name;
無論哪種方式,您都不能使用$up
來獲取名稱,因為正如您的錯誤所說,它是 PDOStatement 類型的 object 而實際上不是查詢的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.