可能重复:
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语法错误。我怎么能纠正这个?
答案 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注入。