Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 其中查询给出;为foreach()提供的参数无效; 试试看 { $db=newpdo('mysql:host=localhost;dbname=wba','root',''; } 捕获(PDO$e) { echo'Połączenie mogło zostaćutworzone:'。$e->getMessage(); } $db->exec(“设置名称utf8”); $stmt=$db->query(“从atrakcje中选择*,其中'akceptacja`!=1订单ID描述”); foreach($stmt作为$row) { 回声“; 回显“$row['tytul']”; 回显“Blok:”.$row['Blok']。”; echo“”$row['opis']。”“$row['imienazwisko']。”\”.“\”.$row['ksywka']。\””; 回声“; } $stmt->closeCursor();_Php_Mysql_Pdo - Fatal编程技术网

Php 其中查询给出;为foreach()提供的参数无效; 试试看 { $db=newpdo('mysql:host=localhost;dbname=wba','root',''; } 捕获(PDO$e) { echo'Połączenie mogło zostaćutworzone:'。$e->getMessage(); } $db->exec(“设置名称utf8”); $stmt=$db->query(“从atrakcje中选择*,其中'akceptacja`!=1订单ID描述”); foreach($stmt作为$row) { 回声“; 回显“$row['tytul']”; 回显“Blok:”.$row['Blok']。”; echo“”$row['opis']。”“$row['imienazwisko']。”\”.“\”.$row['ksywka']。\””; 回声“; } $stmt->closeCursor();

Php 其中查询给出;为foreach()提供的参数无效; 试试看 { $db=newpdo('mysql:host=localhost;dbname=wba','root',''; } 捕获(PDO$e) { echo'Połączenie mogło zostaćutworzone:'。$e->getMessage(); } $db->exec(“设置名称utf8”); $stmt=$db->query(“从atrakcje中选择*,其中'akceptacja`!=1订单ID描述”); foreach($stmt作为$row) { 回声“; 回显“$row['tytul']”; 回显“Blok:”.$row['Blok']。”; echo“”$row['opis']。”“$row['imienazwisko']。”\”.“\”.$row['ksywka']。\””; 回声“; } $stmt->closeCursor();,php,mysql,pdo,Php,Mysql,Pdo,我使用这样的代码。我得到 为foreach()提供的参数无效 第31行foreach($stmt作为$row)谢谢您的评论。我发现我的错误在数据库中拼写错误。$stmt将是结果对象,而不是数组。需要做一个WHILE循环。您的查询似乎失败了,$stmt是false,而不是PDOStatement对象。您应该通过添加/启用错误处理来检查失败的原因。我注意到了这一点,并更新了我的链接。@Twisty在同一页:PDO::query()的一个很好的功能是,它使您能够迭代成功执行SELECT语句返回的行集。

我使用这样的代码。我得到

为foreach()提供的参数无效


第31行foreach($stmt作为$row)

谢谢您的评论。我发现我的错误在数据库中拼写错误。

$stmt
将是结果对象,而不是数组。需要做一个WHILE循环。您的查询似乎失败了,
$stmt
false
,而不是
PDOStatement
对象。您应该通过添加/启用错误处理来检查失败的原因。我注意到了这一点,并更新了我的链接。@Twisty在同一页:
PDO::query()的一个很好的功能是,它使您能够迭代成功执行SELECT语句返回的行集。
您还可以让PDO抛出异常。打开连接后放置此选项:
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常)
  try
   {
      $db = new PDO('mysql:host=localhost;dbname=wba', 'root', '');
   }
   catch(PDOException $e)
   {
      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
   }
   $db->exec("set names utf8");
   $stmt = $db->query("SELECT * FROM atrakcje WHERE `akceptacja` !=1 ORDER BY ID DESC");


      foreach($stmt as $row)
      {
        echo "<div class='pure-u-1' style='background:#ecf0f1; border:0px; margin-bottom:20px;'>";
        echo "<h2>".$row['tytul']."</h3>";
        echo "<h3>Blok: ".$row['blok']."</h2>";
        echo "<p style='padding:15px;'>".$row['opis']."<br><br><i style='float:right; padding-right:10px;'>".$row['imienazwisko']." \"".$row['ksywka']."\"</i></p>";
        echo "</div>";
      }
      $stmt->closeCursor();