PHP | MySql-无法插入包含撇号的文本
[我正在使用phpmyadmin] 我想插入长文本,这是一个城市或地区的大型描述。 它包含撇号和逗号,但插入时,逗号不是问题,但撇号是 例如 东吉是整个掸邦的行政首都。它坐落在山顶,也是一个繁忙的贸易站, 还有…' 它将从用户输入到我的网站上的文本区域。 所以它不能像我找到的其他示例那样静态定义 当前的 //php$name=$\u请求[名称]// //在insert query=>“.$name.”中 我也尝试过下面的方法,但不起作用PHP | MySql-无法插入包含撇号的文本,php,mysql,Php,Mysql,[我正在使用phpmyadmin] 我想插入长文本,这是一个城市或地区的大型描述。 它包含撇号和逗号,但插入时,逗号不是问题,但撇号是 例如 东吉是整个掸邦的行政首都。它坐落在山顶,也是一个繁忙的贸易站, 还有…' 它将从用户输入到我的网站上的文本区域。 所以它不能像我找到的其他示例那样静态定义 当前的 //php$name=$\u请求[名称]// //在insert query=>“.$name.”中 我也尝试过下面的方法,但不起作用 '".$name."', 有什么好主意吗!非常感谢你的帮
'".$name."',
有什么好主意吗!非常感谢你的帮助。谢谢大家! 用反斜杠转义引号。比如“sumit's” 下面是一个使用mysqli\u real\u escape\u字符串的示例函数:
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$age = mysqli_real_escape_string($con, $_POST['age']);
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('$firstname', '$lastname', '$age')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
参考:
在您的情况下,应该是mysql\u real\u escape\u string$name您尝试过转义特殊字符吗?以下内容应该会有所帮助:
$name=mysqli_real_escape_string($connection, $name);
我创建了一个名为post的函数,每次我需要从$\u post中获取一些东西时,我都会简单地调用post'item\u name';函数将执行转义并返回安全字符串。。。您的问题有很多问题和答案,包括这一个:在过程中,函数有两个参数,第一个是连接处理程序,第二个是要转义的字符串。@RajdeepPaul Good catch-我已经更新了我的答案+向上投票。谢谢,值得一提+顺便说一句,请不要假设OP使用的是危险和不安全的mysql_*函数,一定要问。你没有错。但也不要假设用户肯定在使用mysqli扩展,而不是mysql@这就是为什么我说,总是问司机OP在用什么。MySQLi?PDO?谁知道呢,谢谢。我的案例使用了mysql\u real\u escape\u string$name@sumitbadaya@Nai很高兴这有帮助