簡體   English   中英

php變量不是數組。 使用mysql_query在變量中插入數據

[英]php variable is not array. Inserted data using mysql_query in the variable

它說$c1不是數組。 如果我刪除了第七行,那么它將給出此錯誤消息:

為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();
        }
    }
}

首先,最重要的是,您不應再使用mysql庫。 它不安全,從PHP 5.5開始不推薦使用。 升級到mysqliPDO 有關更多信息,請參考本文: 選擇數據庫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) . '"';

這將僅返回匹配的結果,而不是來自用戶的所有項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM