在PHP中用双撇号替换包含单撇号的变量

时间:2014-09-01 01:20:24

标签: php mysql sql

我正在将foreach循环中的数组中的变量输入到数据库中。有时,这些变量中包含撇号。我知道我需要它们在插入时看起来像这样:

("INSERT INTO table (lastname) VALUES('O''Brien')")

我需要的是:

str_replace("'","''","$lastname"); //  $lastname happens to equal O'Brien

但单引号最终会让它认为中间的房间是一个字符串。我该如何解决?谢谢!

1 个答案:

答案 0 :(得分:1)

假设你正在使用 mysqli (因为没有人会使用 mysql ,对吧),你应该准备一次声明,绑定参数然后在你的循环。

这是一个基本的例子......

// assuming $con is a valid mysqli instance

$stmt = $con->prepare('INSERT INTO `table` (lastname) VALUES (?)');
$stmt->bind_param('s', $lastName);

// assuming you have a collection of last names in $names
foreach ($names as $lastName) {
    $stmt->execute();
}