无法跳转到MySQL结果索引的第0行..?

时间:2013-12-13 03:02:58

标签: php mysql

我得到了以下错误块(值得注意的是,它之后立即重复,我只复制了一次迭代,以简化错误):

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in /home/a-slsa/www/classes/ASC/ASCStaffData.php on line 89

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in /home/a-slsa/www/classes/ASC/ASCStaffData.php on line 91

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in /home/a-slsa/www/classes/ASC/ASCStaffData.php on line 93

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in /home/a-slsa/www/classes/ASC/ASCStaffData.php on line 95

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in /home/a-slsa/www/classes/ASC/ASCStaffData.php on line 97

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in /home/a-slsa/www/classes/ASC/ASCStaffData.php on line 99

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in /home/a-slsa/www/classes/ASC/ASCStaffData.php on line 101

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in /home/a-slsa/www/classes/ASC/ASCStaffData.php on line 103

引用的行如下(是的,我知道使用已弃用的函数很糟糕,但这不是我的代码 - 从其他人那里继承了一个相当大的项目):

    $ascStaff['staffId'] = (mysql_result($dbStaffData->fetch,0,"STAFF_ID") ?
                                mysql_result($dbStaffData->fetch,0,"STAFF_ID") : NULL);

    $ascStaff['ownership'] = (mysql_result($dbStaffData->fetch,0,"OWNERSHIP") ?
                                mysql_result($dbStaffData->fetch,0,"OWNERSHIP") : NULL);    

    $ascStaff['firstName'] = (mysql_result($dbStaffData->fetch,0,"FIRST_NAME") ?
                                mysql_result($dbStaffData->fetch,0,"FIRST_NAME") : NULL);

    $ascStaff['lastName'] = (mysql_result($dbStaffData->fetch,0,"LAST_NAME") ?
                                mysql_result($dbStaffData->fetch,0,"LAST_NAME") : NULL);

    $ascStaff['ritEmail'] = (mysql_result($dbStaffData->fetch,0,"RIT_EMAIL") ?
                                mysql_result($dbStaffData->fetch,0,"RIT_EMAIL") : NULL);

    $ascStaff['otherEmail'] = (mysql_result($dbStaffData->fetch,0,"OTHER_EMAIL") ?
                                mysql_result($dbStaffData->fetch,0,"OTHER_EMAIL") : NULL);

    $ascStaff['address'] = (mysql_result($dbStaffData->fetch,0,"ADDRESS") ?
                                mysql_result($dbStaffData->fetch,0,"ADDRESS") : NULL);

    $ascStaff['phoneNumber'] = (mysql_result($dbStaffData->fetch,0,"PHONE_NUMBER") ?
                                    mysql_result($dbStaffData->fetch,0,"PHONE_NUMBER") : NULL); 

让我感到困惑的是,当手动输入mysql时,查询工作正常。

知道我为什么会收到此错误或如何修复错误?

1 个答案:

答案 0 :(得分:0)

根据我的评论:mysql扩展程序已弃用,因此即使您使用的是旧代码库,也应考虑升级到mysqli

鉴于此,通常此错误表示查询失败。

以某种方式检查查询:

$result = mysql_query("SELECT foo FROM bar WHERE foo = 1");
if(!$result || !mysql_num_rows($result))
{
    die("Empty dataset.");
}