Php MySQL错误:第5行的“按时间戳顺序描述限制1”
我尝试在MRBS日历中运行Rowland Carson的脚本showcalendar.php几天。我在数据库中遇到了一些错误,但现在遇到了以下问题: 您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第5行“按时间戳排序desc limit 1”附近使用的正确语法 我使用MRBS 1.4.11、Apache/2.2.16 Debian、MySQL客户端版本:5.1.66。 我发现这个主题: 还查阅了一些信息并进行了研究 但没有进展。请你能帮我或给我一些正确方向的建议吗? 非常感谢您的时间和精力:Php MySQL错误:第5行的“按时间戳顺序描述限制1”,php,mysql,sql,Php,Mysql,Sql,我尝试在MRBS日历中运行Rowland Carson的脚本showcalendar.php几天。我在数据库中遇到了一些错误,但现在遇到了以下问题: 您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第5行“按时间戳排序desc limit 1”附近使用的正确语法 我使用MRBS 1.4.11、Apache/2.2.16 Debian、MySQL客户端版本:5.1.66。 我发现这个主题: 还查阅了一些信息并进行了研究 但没有进展。请你能帮我或给我一些正确方向的建议吗? 非常感谢
$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass)
or die(mysql_error());
mysql_select_db("mrbs", $conn) or die(mysql_error());
$get_entries = "select timestamp
from $bookings
order by timestamp desc
limit 1
"
;
$entries_result = mysql_query($get_entries) or die(mysql_error());
$data_row = mysql_fetch_object($entries_result);
$last_changed = $data_row->timestamp;
$get_rooms = "select *
from $rooms
order by id
"
;
$rooms_result = mysql_query($get_rooms) or die(mysql_error());
$n_rooms = mysql_num_rows($rooms_result);
$n_cols = $n_rooms + 1;
$booking_block = "<TABLE align=center BORDER=1 CELLPADDING=5>\n";
$booking_block .= "<tr><td colspan=".$n_cols.">";
$booking_block .= "Room bookings for week beginning ";
$booking_block .= $startingDateArray['mday']." ";
$booking_block .= $startingDateArray['month']." ";
$booking_block .= $startingDateArray['year']." ";
$booking_block .= "(Last change to any booking was made ";
$booking_block .= $last_changed;
$booking_block .= ")</td></tr>\n";
$booking_block .= "<tr><td align=right>".$startYear."</td>\n";
while ($rooms = mysql_fetch_array($rooms_result, MYSQL_ASSOC))
{
$booking_block .= "<td>";
$booking_block .= $rooms['room_name'];
$booking_block .= "</td>";
}
$booking_block .= "</tr>\n";
for ($day_number = 0; $day_number <= 6; $day_number++)
{
$booking_block .= "<tr>\n";
$booking_block .= "<td align=right valign=top>";
$endOfDay = $theTimestamp + ONE_DAY;
$theDateArray = getdate($theTimestamp);
if ($theDateArray['year'] != $startYear)
{
$startYear = $theDateArray['year'];
$booking_block .= $startYear."<br>";
}
$booking_block .= date("D d M", $theTimestamp)."</td>\n";
for ($room_number = 1; $room_number <= $n_rooms; $room_number++)
{
$get_bookings = "select *
from $bookings
where start_time >= $theTimestamp
and start_time <= $endOfDay
and room_id = $room_number
order by start_time
"
;
$bookings_result = mysql_query($get_bookings) or die(mysql_error());
$booking_block .= "<td valign=top>";
if (mysql_num_rows($bookings_result) > 0)
{
while ($booking_entry = mysql_fetch_array($bookings_result, MYSQL_ASSOC))
{
$booking_block .= date("H:i", $booking_entry['start_time']);
$booking_block .= "-";
$booking_block .= date("H:i", $booking_entry['end_time']);
$booking_block .= " ";
$booking_block .= $booking_entry['name'];
$booking_block .= "<br>\n";
}
}
else
{
$booking_block .= "<br>";
}
$booking_block .= "</td>";
}
$booking_block .= "</tr>\n";
$theTimestamp = $theTimestamp + ONE_DAY;
}
$booking_block .= "<tr><td colspan=".$n_cols." align=right>";
$booking_block .= "This web page rendered at ";
$booking_block .= sprintf("%02d:%02d:%02d",
$nowArray['hours'],
$nowArray['minutes'],
$nowArray['seconds']);
$booking_block .= " on ";
$booking_block .= $nowArray['mday']." ";
$booking_block .= $nowArray['month']." ";
$booking_block .= $nowArray['year']." ";
$booking_block .= "</table>\n";
MySQL的错误片段从错误发生后的查询点开始。既然你得到的是。。。在错误输出中,这意味着错误就在该点之前,这可能意味着$bookings未定义,您的查询如下
SELECT timestamp
FROM
ORDER BY timestamp DESC
请注意,缺少表名。echo$get\u条目将证实这一点。我不想成为那个家伙,但你不应该使用mysql。一旦你解决了你的问题,你应该看到这个谢谢!我们将检查这些主题,希望很快就能了解。谢谢你的回答。不幸的是$bookings被定义了……接下来会是什么呢?那么它的价值是什么呢?如果它是一个无效的字段名,就像要做的事情一样,那么您必须引用整个值以使其成为合法的表名。值为$bookings=mrbs\u entry值为$bookings=mrbs\u entry mrbs\u entry=数据库中的表名