php mysql 使用变量插入语句

php mysql insert statement using variables

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

$stmt = $con->prepare('INSERT INTO listOfRides (address, time) VALUES 
('$address', '$time')') ;

我看过其他帖子,似乎我正确地使用了带有单引号的变量,但是在访问 URL:

时显示以下错误
Parse error: syntax error, unexpected T_VARIABLE in /home/gbidjght/public_html
/insertRide.php on line 79

感谢任何帮助

您不能将 mysql ' 放入 php '

使用这个

$stmt = $con->prepare("INSERT INTO listOfRides (address, time) VALUES 
('$address', '$time')") ;

将外引号改为双引号

$stmt = $con->prepare("INSERT INTO listOfRides (address, time) VALUES 
('$address', '$time')") ;

因为 's 错误来了。添加 " 而不是 '。试试这个 -

$stmt = $con->prepare("INSERT INTO listOfRides (address, time) VALUES ('$address', '$time')") ;
$stmt = $con->prepare("INSERT INTO `listOfRides` (`address`, `time`)
 VALUES 
($address, $time)") ;

如果您转义了单引号,您最终会在数据库中插入字符串文字“$address”和“$time”:

$stmt = $con->prepare('INSERT INTO listOfRides (address, time) VALUES (\'$address\', \'$time\')');

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

$stmt = $con->prepare("INSERT INTO listOfRides (address, time) VALUES ('$address', '$time')");

话虽如此,既然您已经在准备陈述,为什么不直接使用占位符呢?这将是一种更安全的方法来防止 SQL 注入。

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