2017-07-17 190 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()时,在尝试调试代码时会非常有帮助。

相关问题