php - 我想使用数字 0-9 作为 mysql 表名。我应该如何使用 `` 反引号编写 sql 查询以防止 sql 查询错误?

标签 php mysql

用户可以在我的网站上发布任何主题标题,包括纯数字(例如 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]; ?>">

请注意 - 刻度线似乎表示代码

最佳答案

A user can post any topic title on my website, including pure numbers (eg. 12345). The topic title becomes the name of the table in mysql.

不不不!不要这样做。

主题标题应该成为一个值,而不是表的名称。

使用一张表来存储主题,每个主题一行。使用第二个表来存储该主题的子项。使用外键将子主题链接到父主题。

关于php - 我想使用数字 0-9 作为 mysql 表名。我应该如何使用 `` 反引号编写 sql 查询以防止 sql 查询错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11979630/

相关文章:

php - 从具有所有这些详细信息的多对多表中选择项目...正确的解决方案?

mysql - 使用ansible向mysql表中插入数据

PHP Pagination for MySQL 数据库 - 默认显示第一页

mysql - MyISAM 与 InnoDB

php - Zend Framework addScriptPath 和 Precurio Intranet

php - $.ajax编码问题

php - 仅获取所有父 WooCommerce 类别

php - 我的插入语句(php 到 mysql)无法使用我的变量

php - 使用 double 或 check in AND check 查询数据库

php - 在 PHP 中从 $_POST[] 读取数据