我做了SQL查询。 我想检查结果是否包含值" xxx"。
是否有支持该功能的php功能?
我试过" in_array"但它没有用。
$stylesQuery = mysql_query("SELECT styleID FROM itins_styles WHERE (itinID = 5)");
$stylesIndex = mysql_fetch_array($stylesQuery);
if (in_array ("xxx", $stylesIndex ))
答案 0 :(得分:0)
您忘记了;
中的mysqli_fetch_array($styleQuery)
。
$stylesIndex = mysqli_fetch_array($styleQuery);
如果您的数组变量$stylesIndex
包含值xxx
,那么它应该可以正常工作。
答案 1 :(得分:0)
也许in_array()确实有效。找到项目时,函数返回 true ,否则返回 false 。在OP的代码中,当in_array()返回false时,if条件失败表明搜索字符串不在数组中。但是,如果你知道它应该在那里,那么代码中的另一个点可能会失败。
顺便说一句,虽然不推荐使用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);
当我运行它时,此代码出错,因为我的countries表不包含id为零。因此,$ result不包含数据数组 - 其值为false。因此,in_array()返回false。如果我更正了查询,那么代码运行正常。
注意:启用error_reporting()会在尝试调试代码时非常有用。