PHP | MySql - 无法插入包含撇号的文本

时间:2016-09-28 12:42:26

标签: php mysql

[我正在使用phpmyadmin]

我想插入长文本,这些文本是城市或地区的大型描述。 它包含撇号和逗号,但插入时,逗号不是问题,而是撇号。

例如。

  

' Taunggyi是整个掸邦的行政首都。坐落在一座山顶上,它也是一个繁忙的交易站,   和...... '

它将从用户(输入)输入到我网站上的文本区域。 所以它不能像我发现的其他例子一样静态定义。

目前的一个 //php $name=$_REQUEST["name"]; // //in insert query => '.$name.',

也尝过以下,但没有工作。

'".$name."',

请有任何好的想法!非常感谢您的帮助。谢谢!

2 个答案:

答案 0 :(得分:2)

用反斜杠逃脱报价。喜欢' sumit \'。

这是一个使用mysqli_real_escape_string的示例函数:

<?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);
?> 

参考:http://www.w3schools.com/php/func_mysqli_real_escape_string.asp

在您的情况下,它应该是mysql_real_escape_string($name)

答案 1 :(得分:1)

您是否尝试过转义特殊字符?以下应该会有所帮助:

> C:\Program Files
> (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(1028,3): error :
> Failed to read file attributes for
> "/Users/mod/Library/Caches/Xamarin/Resources/Images.xcassets"

我创建了一个名为post()的函数,每次我需要来自$name=mysqli_real_escape_string($connection, $name); 的东西时我简单地调用$_POST函数而不是执行转义并返回安全字符串...有很多问题和答案您的问题包括:Properly Escaping with MySQLI | query over prepared statements