【发布时间】:2012-12-27 22:09:36
【问题描述】:
我不断收到以下错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 4 行的“ORDER BY date DESC LIMIT 1”附近使用正确的语法
function printSoldiersOfRank($rank, $branch)
{
$soldier = new soldierClass;
$sql = "SELECT * FROM soldier WHERE rank = $rank AND branch = '$branch'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)):
$soldier->getInfo($row['sID']);
$soldier->printInfo();
endwhile;
function printInfo()
{
$sql = "SELECT promoter, name, date
FROM soldier s, log l
WHERE s.sID = l.promoter AND l.promotee = $this->sid
ORDER BY date DESC LIMIT 1";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($result);
echo "<div class='soldierInfo'>";
echo "<a href='index.php?page=soldier&sid=$this->sid'>";
echo $this->name;
echo "</a><br />";
echo "Last Promoted: ";
echo date("d M Y", $row['date']);
echo "<br />By: <a href='index.php?page=soldier&sid=$row[0]'>";
echo $row['name'];
echo "</a></div>";
}
我假设错误出现在我的 printInfo() 函数中。感谢所有帮助,在此先感谢。
【问题讨论】:
-
你得到的错误是
ORDER BY name,而不是date。 -
请不要使用
mysql_*函数编写新代码。它们不再维护,社区已经开始deprecation process。看到 red box 了吗?相反,您应该了解prepared statements 并使用PDO 或MySQLi。如果你不能决定哪一个,this article 会帮助你。如果你选择 PDO,here is good tutorial. -
IN-JECTION、lalali、lalada、lala in-ject-la-di-da。
-
这不是骗子。好吧,我的意思是,骗子帮助,但这不是骗子。这只是一个普通的坏问题。我的意思是说真的,用户甚至都懒得把正确的错误代码放在那里。现在是认真的。我的意思是来吧。 如果您不给我们真实的、损坏的代码,我们应该如何给您一个具体、有用的答案!?