几年后我没有使用这种语言进行编程,我在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]:第二个参数的数据类型错误
为了防止in_array在$ myArray为空时运行,我这样做了:
if (count($myArray) > 0) {
if (in_array($myString, $myArray)) {
$myString = generateString();
}
}
但是当数组为空时,count给我1(?)...
我该如何解决?
另一个问题:$ myString正在已经在测试它的IF中进行修改。这可能在PHP吗?
答案 0 :(得分:2)
好吧,如果您的查询失败,您将......等待它......没有阵列!
因此,in_array
调用会向您发出关于$myArray
不是数组(但false
)的警告。
您需要检查查询是否存在错误,更好的是:
Please, don't use
mysql_*
functions in new code。它们不再被维护,deprecation process已经开始了。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。