嘿,我在尝试访问我的网站时遇到此错误;“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的‘LIMIT 0, 10’附近使用的正确语法”
我的第一行是 <?php require_once('Connections/blog.php'); ?>
但似乎错误来自这里;
$maxRows_getDisplay = 10;
$pageNum_getDisplay = 0;
if (isset($_GET['pageNum_getDisplay'])) {
$pageNum_getDisplay = $_GET['pageNum_getDisplay'];
}
$startRow_getDisplay = $pageNum_getDisplay * $maxRows_getDisplay;
mysql_select_db($database_blog, $blog);
$query_getDisplay = "SELECT news.title, news.pre,
DATE_FORMAT(news.updated, '%M %e, %Y') AS formatted
FROM news ORDER BY news.updated DESC LIMIT 2";
$query_limit_getDisplay = sprintf("%s LIMIT %d, %d",
$query_getDisplay, $startRow_getDisplay, $maxRows_getDisplay);
$getDisplay = mysql_query($query_limit_getDisplay, $blog) or die(mysql_error());
$row_getDisplay = mysql_fetch_assoc($getDisplay);
Run Code Online (Sandbox Code Playgroud)
如果您有任何想法,请因为我完全迷失了。
您创建了一个带有两个 LIMIT 子句的 SQL 语句,这是不允许的。
此示例通过查看用于构建 SQL 字符串的代码来显示调试 SQL 是多么困难。
如果您可以输出最终的SQL 字符串来调试它,那就容易多了。
$query_getDisplay = "SELECT news.title, news.pre,
DATE_FORMAT(news.updated, '%M %e, %Y') AS formatted
FROM news ORDER BY news.updated DESC LIMIT 2";
$query_limit_getDisplay = sprintf("%s LIMIT %d, %d",
$query_getDisplay, $startRow_getDisplay, $maxRows_getDisplay);
error_log("What's wrong with this SQL? " . $query_limit_getDisplay);
$getDisplay = mysql_query($query_limit_getDisplay, $blog) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
您将在错误日志中看到:
What's wrong with this SQL? SELECT news.title, news.pre,
DATE_FORMAT(news.updated, '%M %e, %Y') AS formatted
FROM news ORDER BY news.updated DESC LIMIT 2 LIMIT %d, %d
Run Code Online (Sandbox Code Playgroud)
这使得发现无效的 SQL 语法变得更加容易(假设您可以识别有效与无效的 SQL 语法)。
| 归档时间: |
|
| 查看次数: |
4429 次 |
| 最近记录: |