在php中使用单引号的mysql_query错误

时间:2012-09-09 18:55:33

标签: php mysql

  

可能重复:
  How do I handle single quotes inside a SQL query in PHP?

我编写了以下代码来从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语法错误。我怎么能纠正这个?

2 个答案:

答案 0 :(得分: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网站上的红色框here

答案 1 :(得分:-1)

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

编写此函数并将其命名为

escape($clg);

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