【发布时间】:2012-10-23 21:28:09
【问题描述】:
我一直在尝试调试的屏幕上显示此错误。
“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'to = 'testname'' 附近使用正确的语法”
我使用的函数如下:
function recentMessages() {
$tbl_name="messages";
$username = $_SESSION['username'];
$result = mysql_query("SELECT * FROM $tbl_name WHERE to = '$username' ") or die(mysql_error());
while ($row = mysql_fetch_row($result))
{
return $row['date']." ".$row['time']." ".$row['from']." ".$row['subject']. "<br />";
}
}
基本上,我试图做的是从数据库消息中获取所有数据行,其中谁是会话的用户名,并且它的回显。关于我做错了什么的任何想法?谢谢
【问题讨论】:
-
@BrendanLong 在 sql 中转义变量是一个有效点(当然),但是:如果修改会话数据很简单,那么 sql 注入将是您的应用程序最不担心的问题。安德鲁 - 考虑让 $username = "' OR 1=1 or x='"
-
在数据库中使用它之前,你真的应该从外部来源escape string data,即使你认为它可能是安全的。