Uczę się PDO i robię się bardzo zagubiony, mam ten kawałek kodu poniżej i wszystko wygląda dobrze, jednak otrzymuję ten kod błędu i nie wiem, co muszę zrobić, aby to naprawić proszę mi pomóc: kodMySql PDO połączenie z bazą danych
<?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();
}
?>
error: Invalid argument supplied for foreach() in /Applications/XAMPP/xamppfiles/htdocs/GOTSWAPMAIN/index.php on line 11
'var_dump ($ dbh-> query ($ sql)) --- --- zawsze sprawdź, co kryje się w zmiennych i jakie zwroty zwracają zamiast zgadywać. – zerkms
Jak sugeruje zerkers, wygląda na to, że kwerenda się nie udaje, a zatem zwraca wartość false zamiast iterowalnego PDOStatement. Wygląda na to, że próbujesz korzystać z PDO z wyjątkami. Jeśli połączenie zostało skonfigurowane tak, aby korzystało z wyjątków, nie otrzymasz błędu nieprawidłowego argumentu, ponieważ zostanie zgłoszony wyjątek (a tym samym foreach nigdy nie zostanie wykonany). Musisz jednak poinformować połączenie, aby wyrzucił wyjątki, albo zobacz czwarty parametr konstruktu PDO :: __ lub przez '$ dbh-> setAttribute'. – Corbin