簡體   English   中英

致命錯誤:未捕獲錯誤:無法使用PDOStatement類型的對象作為數組

[英]Fatal error: Uncaught Error: Cannot use object of type PDOStatement as array

我想要一個php腳本,它從我的db表中給我一個隨機選擇的行,並將“allocatesered”的值更改為1.我確定它有點愚蠢,但我是這個東西的新手。

這是我的代碼:

<?php

$hostname = 'localhost';
$user = 'root';
$pass = '';
$database = 'testt';

$db_connection = new PDO( "mysql:host=" . $hostname . ";dbname=" . $database, 
$user, $pass );

$results = $db_connection->query( 'SELECT username, password FROM accounts WHERE dispensered = 0 ORDER by rand() LIMIT 1' );

$db_connection->query( 'UPDATE accounts SET dispensered=1 WHERE id='.$results['id'].'' );

foreach ( $results as $row ) {
    echo '<p id="username">' . $row['username'] . '</p>';
    echo '<p id="password">&ndash;' . $row['password'] . '</p>';
}




// Close the connection
$db_connection = null;

最好的祝福

Fatal error: Uncaught Error: Cannot use object of type PDOStatement as 
array in C:\xampp\htdocs\test\index.php:13 Stack trace: #0 {main} thrown 
in C:\xampp\htdocs\test\index.php on line 13

編輯:試過;

$test = $results;
$db_connection->query( 'UPDATE accounts SET dispensered=1 WHERE 
id='.$test['id'].'' );

但它沒有工作,以及:(

PDO :: query - 執行SQL語句,將結果集作為PDOStatement對象返回。 您正嘗試在更新查詢中將$ results作為數組訪問。 因此,你會看到這個錯誤。 您需要從for循環中的$ row捕獲'id'值,然后在此之后運行更新查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM