Php 错误-意外的T_变量

Php 错误-意外的T_变量,php,syntax,Php,Syntax,好的,我已经在这段代码上花了很长时间,它一直在说我在第54行有一个意外的T_变量。有人知道它是什么以及如何修复吗 // Write the key and activation time to the database as a new row **LINE 54** $registerid = mysql_query("INSERT INTO downloadkey (uniqueid,timestamp) VALUES("$key","$time")") or die(mysql_err

好的,我已经在这段代码上花了很长时间,它一直在说我在第54行有一个意外的T_变量。有人知道它是什么以及如何修复吗

// Write the key and activation time to the database as a new row
**LINE 54**   $registerid = mysql_query("INSERT INTO downloadkey (uniqueid,timestamp) VALUES("$key","$time")") or die(mysql_error());

有语法错误。在
值(“$key”,“$time”)


您的insert查询看起来像是被
破坏了。php足够聪明,可以读取
引号中的变量,这样就不需要在变量已经打开时将其包装在

 $registerid = mysql_query("INSERT INTO downloadkey (uniqueid,timestamp)
 VALUES($key,$time)") or die(mysql_error());
正确的第54行是

$registerid=mysql\u查询(“插入到下载键中 (uniqueid,timestamp)值(\“$key\”、\“$time\”)或 die(mysql_error())


转义您的引号。

这一行是罪魁祸首。如果您断开字符串以插入变量,则需要将它们串联起来

解决方案A:

$registerid = mysql_query("INSERT INTO downloadkey (uniqueid,timestamp) VALUES('".$key."','".$time."')") or die(mysql_error());
解决方案B

$registerid = mysql_query("INSERT INTO downloadkey (uniqueid,timestamp) VALUES('$key','$time')") or die(mysql_error());

请不要使用不推荐使用的函数,如mysql。\u*

您需要使用单引号而不是双引号:

$registerid = mysql_query("
INSERT INTO downloadkey (uniqueid,timestamp) 
VALUES('$key','$time')") or die(mysql_error());
另一种解决方案是连接变量,如下所示:

$registerid = mysql_query("
INSERT INTO downloadkey (uniqueid,timestamp) 
VALUES(" . $key . "," . $time . ")") or die(mysql_error());

。它们不再被维护。请参阅?改为了解,并使用,或-将帮助您决定使用哪个。如果您选择PDO

也许可以试试:

$registerid = mysql_query("INSERT INTO downloadkey (`uniqueid`,`timestamp`) VALUES('$key','$time')") or die(mysql_error());
替换为:

$registerid = mysql_query("INSERT INTO downloadkey (uniqueid,timestamp) VALUES('" . $key . "','" . $time . "')") or die(mysql_error());

你能突出显示第54行吗?请把第54行放在第54行的前面,这里可能有错误…这样写->值(“$key.”,“$value.”)$registerid=mysql\u查询(“插入到downloadkey(uniqueid,timestamp)值(“$key”,“$time”))或死(mysql\u error());现在你已经回答了这个问题,忘掉MySQL,用准备好的语句开始学习MySQLi或PDO:显然你才刚刚开始学习,所以要学习更好的查询数据库的方法,而不是以后必须忘记的糟糕方法。一个不够强调@MarkBaker的观点的人。请停止将字符串连接到make查询并开始使用准备好的语句。这种情况经常发生。这就是为什么我们在这里提供帮助。
$registerid = mysql_query("INSERT INTO downloadkey (`uniqueid`,`timestamp`) VALUES('$key','$time')") or die(mysql_error());
$registerid = mysql_query("INSERT INTO downloadkey (uniqueid,timestamp) VALUES("$key","$time")") or die(mysql_error());
$registerid = mysql_query("INSERT INTO downloadkey (uniqueid,timestamp) VALUES('" . $key . "','" . $time . "')") or die(mysql_error());