获取错误“为foreach()提供的无效参数”

时间:2015-06-20 13:36:52

标签: php pdo

我收到了一个错误:

  

警告:为foreach()提供的参数无效   第96行/home/pawno/domains/rgl.lt/public_html/vvp/index.php

第96行== 20摘录。

CONFIG PAGE:

<?php
$databasehost = "localhost";
$databasename = "db";
$databaseuser = "user";
$databasepass = "pass";

try {
    $db = new PDO("mysql:host=$databasehost;dbname=$databasename",
      $databaseuser, $databasepass);
}
catch (PDOException $e) {
    echo 'Nepavyko prisijungti prie duomenų bazės. 
      Praneškite apie šią klaidą administracijai. 
      Klaidos kodas: ' . $e->getMessage();
}
?>

INDEX PAGE:

<div class = "vvpbutton">
    <?php
    $sql = "SELECT * FROM players 
      WHERE Vardas = ".$_SESSION[ 'Vardas' ]."";
    foreach ($db->query($sql) as $row)
    {?>
    <button type="button" class="vvpbuttonss btn btn-danger">» PATIRTIES TAŠKAI: <?=$row['Xp']?> XP</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» IEŠKOMUMAS: 0 žvaigžd.</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» PASLAUGŲ VALIUTA: 0 kred.</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» ADMIN: Yra ( 2015.02.25 )</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» VIP: Nėra</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» PINIGAI RANKOSE: 0 €</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» PINIGAI BANKE: 0 €</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» DARBAS: Policininkas</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» UŽBLOKUOTAS: Ne</button>
    <?php
    }
    ?>
</div>

1 个答案:

答案 0 :(得分:2)

那个标记只是坏兄弟,你不知道$db->query($sql)的返回值,那你为什么假设它是一个数组呢?

首先将查询的返回数据存储在变量中;

$rows = $db->query($sql);

然后在尝试将其用作一个数组之前检查它是否为数组;

if(is_array($rows)){
  //do something if the return data is an array
  foreach ($rows as $row){?>
    <button type="button" class="vvpbuttonss btn btn-danger">» PATIRTIES TAŠKAI: <?=$row['Xp']?> XP</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» IEŠKOMUMAS: 0 žvaigžd.</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» PASLAUGŲ VALIUTA: 0 kred.</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» ADMIN: Yra ( 2015.02.25 )</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» VIP: Nėra</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» PINIGAI RANKOSE: 0 €</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» PINIGAI BANKE: 0 €</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» DARBAS: Policininkas</button><br />
    <button type="button" class="vvpbuttonss btn btn-danger">» UŽBLOKUOTAS: Ne</button>
  <?php }
} else {?> <p>The provided data isn't an array</p> <?php }

虽然我有一种唠叨的感觉,你的返回数据不是数组。