php中出现单引号mysql_query错误


mysql_query error with single quotes in php

可能重复:
如何在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语法错误。我该如何纠正?

$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网站上的红框。

<?php
function escape($string) {
    if(get_magic_quotes_gpc()) $string = stripslashes($string);
    return mysql_real_escape_string($string);
}

编写此函数并将其称为

escape($clg);

以防止每次mysql语法错误和sql注入