Php 致命错误:未捕获错误:无法将PDOStatement类型的对象用作数组
我想要一个php脚本,它从我的db表中随机选择一行,并将“Dispensed”的值更改为1。 我肯定这有点愚蠢,但我对这东西还不熟悉 这是我的密码:Php 致命错误:未捕获错误:无法将PDOStatement类型的对象用作数组,php,mysql,select,pdo,fatal-error,Php,Mysql,Select,Pdo,Fatal Error,我想要一个php脚本,它从我的db表中随机选择一行,并将“Dispensed”的值更改为1。 我肯定这有点愚蠢,但我对这东西还不熟悉 这是我的密码: <?php $hostname = 'localhost'; $user = 'root'; $pass = ''; $database = 'testt'; $db_connection = new PDO( "mysql:host=" . $hostname . ";dbname=" . $database, $user, $pas
<?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">–' . $row['password'] . '</p>';
}
// Close the connection
$db_connection = null;
编辑:试过了
$test = $results;
$db_connection->query( 'UPDATE accounts SET dispensered=1 WHERE
id='.$test['id'].'' );
但效果并不理想:(PDO::query-执行SQL语句,将结果集作为PDOStatement对象返回。您试图在更新查询中以数组形式访问$results。因此您看到了此错误。您需要从for循环中的$row中捕获'id'值,然后运行更新查询。@dangerseek太好了……请您投票给我好吗答案是什么?
$test = $results;
$db_connection->query( 'UPDATE accounts SET dispensered=1 WHERE
id='.$test['id'].'' );