这是对字符串进行转义以防万一的正确方法还是我可以像这样插入字符串而无需额外转义?
$filenamefordb = preg_replace('/[^A-Za-z0-9а-яА-Я_\.\-]/u', '', $filenamefordb);
$query = "INSERT INTO file SET filename='$filenamefordb";
我不使用 mysqli_escape 因为我还需要在另一个地方不带任何引号的名称
最佳答案
为什么不使用 PDO 对字符串进行转义?
<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');
/* Complex string */
$string = "Co'mpl''ex \"st'\"ring";
print "Unquoted string: $string\n";
print "Quoted string: " . $conn->quote($string) . "\n";
?>
这将输出
Unquoted string: Co'mpl''ex "st'"ring
Quoted string: 'Co''mpl''''ex "st''"ring'
关于php - 替换引号后转义字符串的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26060335/