php - 检查结果是否包含值
我做了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))
你在你的mysqli_fetch_array($styleQuery)
忘记;
。
$stylesIndex = mysqli_fetch_array($styleQuery);
如果你的数组变量$stylesIndex
包含值xxx
那么它应该工作。
我建议你使用'mysqli'或'PDO'而不是'mysql'。它已被弃用。并手动检查你的数据库的值'xxx',其中'itinID'是'5'。 –
也许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()时,在尝试调试代码时会非常有帮助。
**停止**使用不推荐使用的'mysql_ *'API。使用'mysqli_ *'或'PDO' – Jens
'Mysql'已被弃用。使用'mysqli'。 –
使用'mysqli'并显示'$ stylesIndex'的数组结构。 – Virb