繁体   English   中英

在查询中构造mysql表名

[英]Constructing mysql tablenames in query

这确实很明显,但是让我发疯了很长时间。

我在MySql数据库中有一堆表,这些示例是

//表名称000001_table1、000001_table2、000002_table1、000002_table2、000003_table1、000003_tabel2

在PHP中,我可以以编程方式创建这些表

$db->query("CREATE TABLE {$tablenum}_table1 (ID INT PRIMARY KEY AUTO_INCREMENT, COL1 TEXT, COL2 TEXT, COL3 TEXT)")

但是,当我阅读这些表格时,我遇到了问题

使用以下查询

$db->query("SELECT COUNT(*) from {$tablenum}_table1")

我得到错误

Table 'database.000001' doesn't exist[]

如果我在其周围放退格键,则会收到错误消息

找不到文件:“。\\ database \\ 000001 @ 000d @ 000a_table1.frm”(错误号:22-无效参数)[]

如果我尝试在查询之前构造表名,则会遇到相同的问题。

有任何想法吗

谢谢

在表名周围使用反引号:

$db->query("SELECT COUNT(*) from `" . $tablenum . "_table1`")

希望能帮助到你。

看起来您的{$ tablenum} _table1将其转换为{$ tablenum} ._ table1(插入了一个额外的点,他认为它是00001.table1 ,这意味着:table1 FROM database 00001

尝试像这样使用变量表名:

$db->query("SELECT COUNT(*) from ${tablenum}_table1")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM