2017-07-17 167 views
0

我做了SQL查詢。 我想檢查結果是否包含值「xxx」。php - 檢查結果是否包含值

有沒有任何支持PHP的函數?

我試過「in_array」,但它不起作用。

$stylesQuery = mysql_query("SELECT styleID FROM itins_styles WHERE (itinID = 5)"); 
    $stylesIndex = mysql_fetch_array($stylesQuery); 
    if (in_array ("xxx", $stylesIndex)) 
+1

**停止**使用不推薦使用的'mysql_ *'API。使用'mysqli_ *'或'PDO' – Jens

+1

'Mysql'已被棄用。使用'mysqli'。 –

+1

使用'mysqli'並顯示'$ stylesIndex'的數組結構。 – Virb

回答

0

你在你的mysqli_fetch_array($styleQuery)忘記;

$stylesIndex = mysqli_fetch_array($styleQuery); 

如果你的數組變量$stylesIndex包含值xxx那麼它應該工作。

+0

我建議你使用'mysqli'或'PDO'而不是'mysql'。它已被棄用。並手動檢查你的數據庫的值'xxx',其中'itinID'是'5'。 –

0

也許in_array()確實有效。該函數返回true找到該項目,並返回false否則。在OP的代碼中,當in_array()返回false時,if-conditional失敗表明搜索字符串不在數組中。但是,如果你知道它應該在那裏,那麼代碼中的另一點可能會失敗。另外,雖然mysql已被棄用,並且所有PHP開發人員都應該切換到mysqli,但有些人沒有這種奢侈品,必須與他們的工作場所規定一致。這裏的問題不是mysql,而是需要注意手冊關於基本測試的建議。以下是主要來自於人工代碼(見here):

<?php 
error_reporting(E_ALL); 

$result = null; 
$res = null; 

$link = mysql_connect('localhost', 'root', '') 
    or die('Could not connect: ' . mysql_error()); 

mysql_select_db('exp') or exit('Could not select database'); 

$query = "SELECT * FROM countries WHERE id=0"; 

$result = mysql_query($query) or exit('Query failed: ' . mysql_error()); 
$line = mysql_fetch_array($result, MYSQL_ASSOC); 
if (in_array("US", $line)) { 
      echo "in array\n"; 
} 

var_dump($line); 

// Free resultset 
mysql_free_result($result); 

此代碼錯誤,當我跑出來,因爲我的國家表不包含零的ID。因此,$ result不包含數據數組 - 它的值爲false。所以,in_array()返回false。如果我更正了查詢,那麼代碼運行良好。

注意:啓用error_reporting()時,在嘗試調試代碼時會非常有幫助。