Php 为什么给我一个SQL语法错误?
你知道我为什么会这样吗:Php 为什么给我一个SQL语法错误?,php,sql,mysql,mysql-error-1064,Php,Sql,Mysql,Mysql Error 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 '``, `title` varchar(255) collate latin1_general_ci NOT NULL default ``,' at line 3 代码是这样的(我有问题的部分…) 非
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 '``, `title` varchar(255) collate latin1_general_ci NOT NULL default ``,' at line 3
代码是这样的(我有问题的部分…)
非常感谢您的帮助 对字符串使用反勾号而不是引号。更改此项:
default ``
为此:
default ''
完整声明应为:
CREATE TABLE `forum` (
`postid` bigint(20) NOT NULL auto_increment,
`author` varchar(255) collate latin1_general_ci NOT NULL default '',
`title` varchar(255) collate latin1_general_ci NOT NULL default '',
`post` mediumtext collate latin1_general_ci NOT NULL,
`showtime` varchar(255) collate latin1_general_ci NOT NULL default '',
`realtime` bigint(20) NOT NULL default '0',
`lastposter` varchar(255) collate latin1_general_ci NOT NULL default '',
`numreplies` bigint(20) NOT NULL default '0',
`parentid` bigint(20) NOT NULL default '0',
`lastrepliedto` bigint(20) NOT NULL default '0',
`author_avatar` varchar(30) collate latin1_general_ci NOT NULL default 'default',
`type` varchar(2) collate latin1_general_ci NOT NULL default '1',
`stick` varchar(6) collate latin1_general_ci NOT NULL default '0',
`numtopics` bigint(20) NOT NULL default '0',
`cat` bigint(20) NOT NULL,
PRIMARY KEY (`postid`)
);
您正在对字符串使用反勾号而不是引号。更改此项:
default ``
为此:
default ''
完整声明应为:
CREATE TABLE `forum` (
`postid` bigint(20) NOT NULL auto_increment,
`author` varchar(255) collate latin1_general_ci NOT NULL default '',
`title` varchar(255) collate latin1_general_ci NOT NULL default '',
`post` mediumtext collate latin1_general_ci NOT NULL,
`showtime` varchar(255) collate latin1_general_ci NOT NULL default '',
`realtime` bigint(20) NOT NULL default '0',
`lastposter` varchar(255) collate latin1_general_ci NOT NULL default '',
`numreplies` bigint(20) NOT NULL default '0',
`parentid` bigint(20) NOT NULL default '0',
`lastrepliedto` bigint(20) NOT NULL default '0',
`author_avatar` varchar(30) collate latin1_general_ci NOT NULL default 'default',
`type` varchar(2) collate latin1_general_ci NOT NULL default '1',
`stick` varchar(6) collate latin1_general_ci NOT NULL default '0',
`numtopics` bigint(20) NOT NULL default '0',
`cat` bigint(20) NOT NULL,
PRIMARY KEY (`postid`)
);
“author”是一个列名,因此它会倒勾。
但默认值“”是一个值,因此它应该使用引号,而不是反勾号
如果是这种情况,所有其他默认值也是如此
“author”是一个列名,因此它会倒勾。
但默认值“”是一个值,因此它应该使用引号,而不是反勾号
如果是这种情况,所有其他默认设置也是如此。感谢您的回复。我以前确实做过这个(用‘代替’),但它只是给我看了一张空白页 我解决了我的问题。我要么把反斜杠放在每一个字母前,要么就把字母改一下
$sql = 'CREATE TABLE `forum` (
到
(注意引号)
无论如何,谢谢你,这帮我弄明白了 感谢您的回复。我以前确实做过这个(用‘代替’),但它只是给我看了一张空白页 我解决了我的问题。我要么把反斜杠放在每一个字母前,要么就把字母改一下
$sql = 'CREATE TABLE `forum` (
到
(注意引号)
无论如何,谢谢你,这帮我弄明白了 正如Tibo所指出的,这个查询需要用双引号,而不是单引号。正如Tibo所指出的,这个查询需要用双引号,而不是单引号。Tibo:查找HEREDOC语法,它可以让你分配像这样的大文本块,而不必担心转义引号:Tibo:查找HEREDOC语法,它可以让您分配像这样的大文本块,而不必担心转义引号: