Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không thể sử dụng đối tượng kiểu PDOStatement dưới dạng mảng

Từ:

$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
[...]
if ($settings['create_admins'] > 0 || $admin['super_admin'] > 0 ) {

$admin thuộc loại PDOStatament là một lớp chứ không phải một mảng. Do đó, bạn không thể gọi [] toán tử trên đó.

Ngoài ra, bạn thực sự không nên gán cho $admin đến kết quả trả về của mọi phương thức vì hầu hết PDOStatament Các phương thức của trả về giá trị boolean:

$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
$admin->bindValue(':username', $_SESSION['user']);
$admin->execute();

Để truy xuất super_admin từ admin bảng bạn nên thêm (sau execute() tuyên bố):

$result = $admin->fetch(PDO::FETCH_ASSOC);

sẽ điền (hy vọng, nó phụ thuộc vào lược đồ bảng là gì) $result['super_admin'] .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Datetime trong PHP Script

  2. MySQL trên Docker - Cách chứa cơ sở dữ liệu của bạn:Sách trắng mới

  3. Mysql:Chọn giá trị giữa hai cột

  4. Lập chỉ mục cho các hoạt động BINARY LIKE trong MySQL

  5. MySQL và JSON - chuyển mảng thành hàng