php - 检查结果是否包含值

时间:2017-07-17 07:32:06

标签: php

我做了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 ))

2 个答案:

答案 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()会在尝试调试代码时非常有用。