[英]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開始不推薦使用。 升級到mysqli或PDO 。 有關更多信息,請參考本文: 選擇數據庫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.