php mysql使用变量插入语句

时间:2015-04-24 04:13:00

标签: php mysql sql-insert

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

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

我查看了其他帖子,似乎我正确使用变量并使用单引号,但访问网址时显示以下错误:

Parse error: syntax error, unexpected T_VARIABLE in /home/gbidjght/public_html
/insertRide.php on line 79

感谢任何帮助

5 个答案:

答案 0 :(得分:5)

如果您使用单引号转义,最终会将字符串文字“$ 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));

答案 1 :(得分:4)

将外引号更改为双引号

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

答案 2 :(得分:2)

你不能把mysql '放在php '

使用此

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

答案 3 :(得分:2)

由于' s错误即将来临。添加"代替'。试试这个 -

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

答案 4 :(得分:2)

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