PDO为foreach()提供的参数无效

时间:2012-10-20 11:47:16

标签: php mysql foreach pdo

如果你们可以请求帮助, 我试图切换到新的PDO,但很难......

为什么此代码有效:

include ('connect.php');

$sql = "SELECT * FROM GP_2012";
$conn = $DBH->query($sql);

foreach ($conn as $row)
    {
    print $row['Prenom'] . ' ' . $row['Nom'] . '<br>' . 
    'Type: ' . $row['Type'] . '<br>' . 
    'Telephone: ' . $row['Tel'] . '<br>' .
    'Mail: ' . $row['Mail'] . '<br>' .
    'Bateau: ' . $row['Bateau'] . '<br>' .
    '<br><br>';
    }

而不是这一个:

include ('connect.php');

$sql = "SELECT * FROM GP_2012 WHERE Nom LIKE Pageot";
$conn = $DBH->query($sql);

foreach ($conn as $row)
    {
    print $row['Prenom'] . ' ' . $row['Nom'] . '<br>' . 
    'Type: ' . $row['Type'] . '<br>' . 
    'Telephone: ' . $row['Tel'] . '<br>' .
    'Mail: ' . $row['Mail'] . '<br>' .
    'Bateau: ' . $row['Bateau'] . '<br>' .
    '<br><br>';
    }

我在PHPMYADMIN中试过并且这些查询都有效,第二个应该显示一个结果,但我没有得到任何东西,在我的错误日志中我得到: 为foreach()提供的参数无效

1 个答案:

答案 0 :(得分:3)

你的sql错了。

$sql = "SELECT * FROM GP_2012 WHERE Nom LIKE '%Pageot%'";

您可以设置异常模式,然后在出错时抛出异常。

或者您需要检查结果,如果返回false,请检查错误信息。