0

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

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

我的问题是,在某些时候我从表中获取数据,使用这个:

$myArray = mysql_fetch_array( $data ); 

但在某些时候,数据库可能为空,因此 $myArray 将为空或不包含任何元素。

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

$myString = generateString();
if (in_array($myString, $myArray)) {
    $myString = generateString();
}

这段代码给了我这个错误:

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

为了防止 in_array 在 $myArray 为空时运行,我这样做了:

if (count($myArray) > 0) {
    if (in_array($myString, $myArray)) {
        $myString = generateString();
    }
}

但是当数组为空(?)时,count 给了我 1...

我该如何解决?

只是另一个问题: $myString 在已经在测试它的 IF 中被修改。这在PHP中可能吗?

4

1 回答 1

2

好吧,如果您的查询失败,您将不得不......等待它......没有数组!

所以这个in_array调用会给你一个关于$myArray不是数组(但是false)的警告。

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

请不要mysql_*在新代码中使用函数。它们不再被维护,并且已经开始弃用过程。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2012-11-18T21:59:28.033 回答