0

它说$c1不是一个数组。如果我删除第 7 行,则会显示以下错误消息:

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

我想知道你如何制作$c1一个数组或者我做错了什么?

$bag = $_POST['bag'];      //from a Form.

$query = "SELECT info FROM users";
$c1 = array();
$c1 = mysql_query($query);

if(is_array($c1))
{

    foreach ($c1 as $check)
    {
        $check_bag = $check['info'];
        if ($bag == $check_bag)
        {
            echo"Bla bla bla bla.";
            exit();
        }
    }
}
4

1 回答 1

4

首先,你不应该再使用 mysql 库。它不安全,自 PHP 5.5 起已弃用。升级到mysqliPDO。有关更多信息,请参阅本文:选择 DB API

其次,它不是数组的原因是因为这一行:

$c1 = mysql_query($query);

此时,$c1 是 mysql 资源,而不是数组。

为了访问数据,您将删除您的 if 语句if(is_array($c1)),然后您需要将循环更改为如下所示:

while($check = mysql_fetch_array($c1)) {
    // Do stuff here
}

作为最后的评论,您问题中的代码效率低下,并且使用了不必要的资源。简化版本会在查询中使用 WHERE 子句,如下所示:

$query = 'SELECT info FROM users 
    WHERE info="' . mysql_real_escape_string($bag) . '"';

这将只返回匹配的结果,而不是来自用户的所有项目。

于 2013-10-16T14:29:10.247 回答