Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么给我一个SQL语法错误?_Php_Sql_Mysql_Mysql Error 1064 - Fatal编程技术网

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语法,它可以让您分配像这样的大文本块,而不必担心转义引号: