[英]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.