-2

可能重复:
如何在 PHP 中处理 SQL 查询中的单引号?

我编写了以下代码来从 mysql 表中获取数据:

$clg=$row['text'];
$query1 = "SELECT * FROM user WHERE text='$clg'";
$result1 = mysql_query($query1,$con) or die(mysql_error());
$count=mysql_num_rows($result1);
echo $count;

但是文本字段有一个单引号('),它关闭了 $query1 中的单引号,因此导致 mysql 语法错误。我该如何纠正这个问题?

4

2 回答 2

1
$clg=$row['text'];
$query1 = "SELECT * FROM user WHERE text='" . mysql_real_escape_string($clg) . "'";
$result1 = mysql_query($query1,$con) or die(mysql_error());
$count=mysql_num_rows($result1);
echo $count;

但是你应该知道 mysql_* 函数系列很快就会被弃用。请阅读php.net 网站上的红框。

于 2012-09-09T19:19:35.350 回答
-1
<?php
function escape($string) {
    if(get_magic_quotes_gpc()) $string = stripslashes($string);
    return mysql_real_escape_string($string);
}

编写这个函数并调用它

escape($clg);

用于防止每个 mysql 语法错误和 sql 注入。`

于 2012-09-09T19:10:01.747 回答