Я изучаю PDO, и я очень сильно смущен, у меня есть этот код ниже, и все выглядит правильно, но я получаю этот код ошибки, и я не знаю, что мне нужно сделать, чтобы исправить это, пожалуйста, помогите мне:
<?php $hostname='localhost'; $username='root'; $password=''; try { $dbh = new PDO("mysql:host=$hostname;dbname=stickercollections",$username,$password); echo 'Connected to Database<br/>'; $sql = "SELECT * FROM stickercollections"; foreach ($dbh->query($sql) as $row) { echo $row["collection_brand"] ." - ". $row["collection_year"] ."<br/>"; } $dbh = null; } catch(PDOException $e) { echo $e->getMessage(); } ?>
Код ошибки: Invalid argument supplied for foreach() in /Applications/XAMPP/xamppfiles/htdocs/GOTSWAPMAIN/index.php on line 11
Попробуйте увеличить режим ошибок:
<?php $hostname='localhost'; $username='root'; $password=''; try { $dbh = new PDO("mysql:host=$hostname;dbname=stickercollections",$username,$password); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line echo 'Connected to Database<br/>'; $sql = "SELECT * FROM stickercollections"; foreach ($dbh->query($sql) as $row) { echo $row["collection_brand"] ." - ". $row["collection_year"] ."<br/>"; } $dbh = null; } catch(PDOException $e) { echo $e->getMessage(); } ?>
EDIT: pdo.error-handling говорит, вы также можете использовать pdo.errorcode и pdostatement.errorcode (или как), чтобы получить больше информации, но я думаю, что исключение throw – лучший способ обработки плохих соединений, а не разрешенных хостов и т. Д.