sql 字符串中的单引号

Single quotes in sql string

我正在使用 PHP 更新数据库中的记录。 这个字符串中有一些单引号。我想知道如何使用 sql update.

更新数据库中的这个字符串

PHP代码:

$content = $_POST['content'];

$query = "UPDATE about SET content = '" . $content . "' WHERE about_id = 1";
$result = mysql_query($query) or die(mysql_error());

例如内容是:

大家好,我叫 Sam,住在荷兰。我今年 24 岁,在 'DiscoFever'.

工作

由于文本中有很多单引号,我无法更新我的记录。这个问题有什么解决方案吗?

首先,您应该停止使用 mysql_* 并开始使用 PDO,您可以在互联网上随处找到快速指南。

然后,解决方案非常简单,只需在您的 $content 变量上应用 mysql_real_escape_string,它将允许您更新您的内容 :) 它还会保护您免受 SQL injection.

使用mysql_real_escape_string:-

$content=mysql_real_escape_string($_POST['content']);
$query = "UPDATE about SET content = '" . $content . "' WHERE about_id = 1";
$result = mysql_query($query) or die(mysql_error());

您可以使用 filter function 试试这个代码:

$content = $_POST['content'];
$query = "UPDATE about SET content    =
'" . filter_var($content,     FILTER_SANITIZE_STRING) . "' WHERE     about_id = 1";
$result = mysql_query($query) or die
(mysql_error())