![](/img/trans.png)
[英]Why is this giving me a syntax error on PHP 7.2 but not PHP 7.4.5?
[英]Why is is giving me an SQL syntax error?
你知道为什么我得到这个吗:
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
代码是这样的(我有问题的部分...)
$sql = '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`)
);';
mysql_query($sql,$con) or die(mysql_error());
帮助将不胜感激!
`author` varchar(255) collate latin1_general_ci NOT NULL default ``,
“作者”是列名,因此为什么要加上反引号。 但是默认的''是一个值,因此它应该用引号引起来,而不是反引号,方法。
在这种情况下,所有其他默认设置也是如此。
您正在使用反引号而不是字符串的引号。 更改此:
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`)
);
感谢您的回复。 我之前实际上已经做过(用'代替`),但是它只是显示了一个空白页。
我发现了我的问题。 我要么必须在每个'之前加反斜杠,要么只是更改
$sql = 'CREATE TABLE `forum` (
至
$sql = "CREATE TABLE `forum` (
(请注意引号)
无论如何,它帮助我弄清楚了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.