我的文本表单不允许在输入字段中出现单个“'”。我收到一个 sql 语法错误。有什么好的方法可以允许在我的文本字段中使用单个撇号吗?
这是我的代码
html
<input class='what' type='text' name='one' required>
<textarea name='two' required></textarea>
<input type='submit'>
</form>
我的数据库
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "INSERT INTO whatsgood (one, two)
VALUES ('$one', '$two')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
任何帮助将不胜感激。谢谢你!
最佳答案
使用addslashes PHP 函数(用斜杠引用字符串)
$sql = "INSERT INTO whatsgood (one, two) VALUES ('".addslashes($one)."', '".addslashes($two)."')";
例子:
<?php
$str = "Is your name O'Reilly?";
// Outputs: Is your name O\'Reilly?
echo addslashes($str);
?>
您还可以使用 mysqli_real_escape_string (考虑到连接的当前字符集,转义字符串中的特殊字符以用于 SQL 语句)
$sql = "INSERT INTO whatsgood (one, two) VALUES ('".mysqli_real_escape_string($conn,$one)."', '".mysqli_real_escape_string($conn,$two)."')";
关于php - 文本形式不能接受撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34080984/