用户可以在我的网站上发布任何主题标题,包括纯数字(例如12345).主题标题成为mysql中表的名称.在测试一个数字作为主题标题时,我在各个地方遇到了MYSQL错误,并确定问题是我没有使用反复标记来进行sql查询.
我应该如何正确编写所有查询以保持任何可能的标题(表)不返回mysql错误?代码示例如下.还有哪些潜在的表格可能会导致问题?
<?php
for ($i=0; $i<4; $i++) {
// select by rand
$offset_result = mysql_query( " SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM `$random_slash[$i]` ");
$offset_row = mysql_fetch_object( $offset_result );
$offset = $offset_row->offset;
$result = mysql_query( " SELECT * FROM `$random_slash[$i]` LIMIT $offset, 1 " );
//$rs = @mysql_query($sql);
while ($row = mysql_fetch_array($result)) {?>
<div class="quadrant">
<h2 class="alignleft"><a href="/<?php echo $random_slash[$i]; ?>">
Run Code Online (Sandbox Code Playgroud)
作为注释 - 刻度线似乎表示代码
用户可以在我的网站上发布任何主题标题,包括纯数字(例如12345).主题标题成为mysql中表的名称.
Noooooo!不要这样做.
主题标题应该成为值,而不是表的名称.
使用一个表来存储主题,每个主题一行.使用第二个表来存储该主题的子项.使用外键将子项链接到父主题.