Php mysql_fetch_array()可以工作,但mysql_fetch_object()不能';T

Php mysql_fetch_array()可以工作,但mysql_fetch_object()不能';T,php,mysql,Php,Mysql,我有以下有效的代码: $date1 = mysql_query("SELECT date1 FROM Users WHERE username='".$_SESSION['username']."'") or die(mysql_error()); while($row = mysql_fetch_array($date1)){ $lastViewedDate = $row[0]; } 但是当我尝试使用mysql_fetch_对象时,我得到一个内部服务器错误500 $date

我有以下有效的代码:

$date1 = mysql_query("SELECT date1 FROM Users WHERE username='".$_SESSION['username']."'") 
    or die(mysql_error());
while($row = mysql_fetch_array($date1)){
    $lastViewedDate = $row[0];
}
但是当我尝试使用mysql_fetch_对象时,我得到一个内部服务器错误500

$date1 = mysql_query("SELECT date1 FROM Users WHERE username='".$_SESSION['username']."'") 
    or die(mysql_error());
while($row = mysql_fetch_object($date1)){
    $lastViewedDate = $row["date1"];
}

我希望将来使用这些对象,但我不明白它们为什么不起作用。任何帮助都将不胜感激。

您没有正确访问您的对象,情况如下:

$date1 = mysql_query("SELECT date1 FROM Users WHERE username='".$_SESSION['username']."'") 
    or die(mysql_error());
while($row = mysql_fetch_object($date1)){
    $lastViewedDate = $row->date1;
}

注意使用对象属性访问器
->

如果您没有正确访问对象,则如下所示:

$date1 = mysql_query("SELECT date1 FROM Users WHERE username='".$_SESSION['username']."'") 
    or die(mysql_error());
while($row = mysql_fetch_object($date1)){
    $lastViewedDate = $row->date1;
}
$lastViewedDate = $row["date1"];
注意对象属性访问器的使用
->

$lastViewedDate = $row["date1"];
这不是访问对象变量的方式;试试这个:

$lastViewedDate = $row->date1;
这不是访问对象变量的方式;试试这个:

$lastViewedDate = $row->date1;

对于fetch_对象,语法为:

$row->date1 
使用fetch_assoc时,语法为:

$row["date1"]

也请。。为了一切神圣的东西。。使用fetch对象打开E_NOTICE error messaging并在

上显示错误。语法为:

$row->date1 
使用fetch_assoc时,语法为:

$row["date1"]

也请。。为了一切神圣的东西。。请打开E_NOTICE error messageing并在

上显示错误,不要使用
mysql*
函数编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果您选择PDO,。将用户数据直接插入查询是一个非常糟糕的主意。始终使用
mysqli
或PDO支持的SQL占位符。请不要使用
mysql.*
函数编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果您选择PDO,。将用户数据直接插入查询是一个非常糟糕的主意。始终使用mysqli或PDO支持的SQL占位符。感谢您提供的信息。作为一个PHPNoob,我甚至不知道E_通知错误。我查了一下,看起来我只需要在脚本的开头调用它。错误报告(E|U错误| E|U警告| E|U解析| E|U通知);这就是你说的吗?@FuegoFingers:是的,那个电话会有帮助的。最好是在php.ini中输入,因为在您有机会调用该函数之前,某些错误可能已经被触发。Ok就可以了。谢谢你的信息和帮助。谢谢你的信息。作为一个PHPNoob,我甚至不知道E_通知错误。我查了一下,看起来我只需要在脚本的开头调用它。错误报告(E|U错误| E|U警告| E|U解析| E|U通知);这就是你说的吗?@FuegoFingers:是的,那个电话会有帮助的。最好是在php.ini中输入,因为在您有机会调用该函数之前,某些错误可能已经被触发。Ok就可以了。感谢您提供的信息和帮助。可能是因为它继续提升SQL注入漏洞。。我猜是吧。其他答案只是省略了显示/谈论它,因此不会“推广”这样的代码,即使他们也不会“阻止”它。我觉得问题更多的是访问对象的属性,而不是数据库访问方面。因此,我只是复制了OP的代码,只做了一次更改。关于这个问题的评论已经提出了典型的“不要使用mysql-*”建议。可能是因为它继续提升SQL注入漏洞。。我猜是吧。其他答案只是省略了显示/谈论它,因此不会“推广”这样的代码,即使他们也不会“阻止”它。我觉得问题更多的是访问对象的属性,而不是数据库访问方面。因此,我只是复制了OP的代码,只做了一次更改。关于这个问题的评论已经提出了典型的“不要使用mysql-*”建议。