我想使用以下脚本创建表:
mysql_query("create table `".$mysql_table_prefix."query_log` (
query varchar(255),
time timestamp(14),
elapsed float(2),
results int,
key query_key(query)
)");
它给了我这个错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query("create table `".$mysql_table_prefix."query_log` ( query varchar(25' at line 1
编辑:我在phpMyAdmin中使用了sql选项卡
我该怎么办?
答案 0 :(得分:5)
我看到的第一个错误是timestamp
没有长度。所以这一行:
time timestamp(14),
应该是这样的:
time timestamp,
答案 1 :(得分:1)
你在一个需要普通SQL的地方使用PHP(注意OP说“我在phpMyAdmin中使用了sql选项卡”)。切到:
create table `query_log` (
query varchar(255),
time timestamp,
elapsed float(2),
results int,
key query_key(query)
)
@Aurelio是对的,时间戳没有长度参数。
答案 2 :(得分:0)
给出错误信息,你以某种方式搞砸了代码,这样PHP mysql_query调用被视为一个字符串,然后直接传递给mysql_query()。可能是前一行中的不平衡'
导致此问题。
... syntax to use near 'mysql_query("create table ...
正确构造的查询字符串永远不会有文字PHP函数调用。
如果要在命令行直接将PHP脚本传递给mysql,例如
$ mysql < somescript.php
这也行不通。 MySQL不会执行该脚本。它将尝试按字面加载原始代码文本。
答案 3 :(得分:0)
您可以在将文本传递给函数之前声明整个文本:
$params="create table `".$mysql_table_prefix."query_log` (
query varchar(255),
time timestamp(14),
elapsed float(2),
results int,
key query_key(query)
)"
然后只是
mysql_query($params);