我一直试图这样做一段时间但无济于事 基本上我有一个函数SelectRowByName返回mysql数组结果,我想验证它是否返回一个记录,但它不起作用。我的代码是:
$fileInfo = selectRowByName("SELECT ID,Mime,IconIMG FROM tblattachment_filetypes WHERE Active=1 AND Extension = '".$extension."'");
//我想在尝试填充以下变量之前验证$ fileInfo是否已填充以避免错误
$fileType = $fileInfo[1];
$fileTypeID = $fileInfo[0];
$fileIcon = $fileInfo[2];
我尝试过使用empty,isset和array count函数,但它们似乎不起作用。基本上,查询可能不会返回任何记录,并且可能无法填写$ fileInfo,我想验证它。
SelectRowByName代码是:
function selectRowByName($query)
{
global $server,$dbusername,$dbpassword,$db,$connection,$dbCon;
$theQuery = mysql_query($query);
$result = mysql_fetch_array($theQuery) or die(mysql_error());
return $result;
}
答案 0 :(得分:1)
在SelectRowByName函数中,您可以使用以下之一(取决于您访问MySQL的方式):
mysql_num_rows()
mysqli_stmt_num_rows()
PDOStatement::rowCount()
获取返回的行数。
答案 1 :(得分:1)
这应该可以解决问题:
function selectRowByName($query){
$q=mysql_query($query);
if($q!=false){
$result=mysql_fetch_array($q);
if(is_array($result)&&count($result)>0){
return $result;
}
else{
return false;
}
}
else{
return false;
}
}
我不建议使用此代码。首先,现在不推荐使用mysql_函数,因此最好使用mysqli或PDO。另一件事是这个函数只能从查询中返回一个单行。
无论哪种方式,希望这有帮助。
赖安