php mysql使用变量插入语句

Gre*_*egH 0 php mysql sql-insert

我抛出错误的PHP代码如下:

$stmt = $con->prepare('INSERT INTO listOfRides (address, time) VALUES 
('$address', '$time')') ;
Run Code Online (Sandbox Code Playgroud)

我查看过其他帖子,看起来我正确使用变量和单引号,但访问URL时会显示以下错误:

Parse error: syntax error, unexpected T_VARIABLE in /home/gbidjght/public_html
/insertRide.php on line 79
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏

Rob*_*ill 5

如果您通过单引号转义,最终会将字符串文字"$ address"和"$ time"插入到您的数据库中:

$stmt = $con->prepare('INSERT INTO listOfRides (address, time) VALUES (\'$address\', \'$time\')');
Run Code Online (Sandbox Code Playgroud)

但是假设它们应该是变量,你应该在SQL语句周围使用双引号,以允许PHP实际解析变量作为它们的值:

$stmt = $con->prepare("INSERT INTO listOfRides (address, time) VALUES ('$address', '$time')");
Run Code Online (Sandbox Code Playgroud)

话虽这么说,既然你已经在准备你的陈述,为什么不只是使用占位符呢?它将是一种更安全的防止SQL注入的方法.

$stmt = $con->prepare("INSERT INTO listOfRides (address, time) VALUES (?, ?)");
$stmt->execute(array($address, $time));
Run Code Online (Sandbox Code Playgroud)