这显然是非常明显的,但却让我疯狂了很长时间。
我在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 - 参数无效)[]
如果我在查询之前尝试构建表名,我会遇到同样的问题。
任何想法
由于
答案 0 :(得分:1)
在表名周围使用反引号:
$db->query("SELECT COUNT(*) from `" . $tablenum . "_table1`")
希望它有所帮助。
答案 1 :(得分:0)
看起来像你的{$ tablenum} _table1将其转换为 {$ tableNum的} ._表1 (插入一个额外的点,他认为它是 00001.table1 ,这意味着: table1 FROM database 00001
答案 2 :(得分:0)
尝试使用变量tablename,如下所示:
$db->query("SELECT COUNT(*) from ${tablenum}_table1")