我正在将foreach循环中的数组中的变量输入到数据库中。有时,这些变量中包含撇号。我知道我需要它们在插入时看起来像这样:
("INSERT INTO table (lastname) VALUES('O''Brien')")
我需要的是:
str_replace("'","''","$lastname"); // $lastname happens to equal O'Brien
但单引号最终会让它认为中间的房间是一个字符串。我该如何解决?谢谢!
答案 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();
}