sql语句
$sql_insert = "insert into tabs(name,singer,address) values ('$name','$singer','$songaddress')";
$res_insert = $conn->query($sql_insert);
问题
我的$name、$singer、$songaddress 变量中会出现单引号,导致引号之间相互冲突,这时sql的语句无法执行,请教大神如何解决?
$sql_insert = "insert into tabs(name,singer,address) values ('$name','$singer','$songaddress')";
$res_insert = $conn->query($sql_insert);
我的$name、$singer、$songaddress 变量中会出现单引号,导致引号之间相互冲突,这时sql的语句无法执行,请教大神如何解决?
将你变量$name、$singer、$songaddress 中的字符串中的单引号
\'
。''
不要拼接SQL了。容易导致SQL注入。
使用PDO
对象来操作数据库,使用预处理语句来处理你的SQL防止SQL注入:
/* 通过绑定的 PHP 变量执行一条预处理语句 */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
用转义符+双引号,如:
$sql_insert = "insert into tabs(name,singer,address) values (\"$name\",\"$singer\",\"$songaddress\")";
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
addslashes
函数了解一下