Php 警告:in_array()[function.in array]:第二个参数的数据类型错误

Php 警告:in_array()[function.in array]:第二个参数的数据类型错误,php,mysql,Php,Mysql,几年没有用这种语言编程之后,我对PHP有点生疏了 我正在使用PHP从mySQL中的数组中获取数据 我的问题是,在某个时刻,我使用以下方法从表中获取数据: $myArray = mysql_fetch_array( $data ); 但在某些情况下,数据库可能是空的,因此$myArray将为null或不包含任何元素 然后,我必须检查动态生成的特定字符串是否位于$myArray上。如果是,则必须生成另一个字符串,并验证它是否已存在于$myArray上 $myString = generateSt

几年没有用这种语言编程之后,我对PHP有点生疏了

我正在使用PHP从mySQL中的数组中获取数据

我的问题是,在某个时刻,我使用以下方法从表中获取数据:

$myArray = mysql_fetch_array( $data ); 
但在某些情况下,数据库可能是空的,因此$myArray将为null或不包含任何元素

然后,我必须检查动态生成的特定字符串是否位于$myArray上。如果是,则必须生成另一个字符串,并验证它是否已存在于$myArray上

$myString = generateString();
if (in_array($myString, $myArray)) {
    $myString = generateString();
}
此代码给出了以下错误:

警告:in_array()[function.in array]:第二个参数的数据类型错误

为了防止在$myArray为空时运行in_array,我执行了以下操作:

if (count($myArray) > 0) {
    if (in_array($myString, $myArray)) {
        $myString = generateString();
    }
}
但是当数组为空(?)时,count给我1

我该如何解决这个问题


还有一个问题:$myString正在被修改,如果已经在测试它的话。这在PHP中是可能的吗?

好吧,如果您的查询失败,您将。。。等等。。。没有阵列

因此,在_array调用中,
将向您发出关于
$myArray
不是数组的警告(但是
false

您需要检查查询是否有错误,最好是:

。它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO


mysql
-扩展已经过时,不鼓励使用。改用
MySQLi
PDO_-MYSQL
。根据,您可能会返回
false
。您可以发布
var\u dump($myArray)
的输出吗?另一方面,
mysql\uquot.
很快就会被弃用,请看一看或取而代之。您从哪里获得此框?除此之外,引用总是好的:我想要它:D。注释源代码可以在这里找到: