关于php中引号的问题

$sql="update a set b='$xx' ";
$sql2="update a set b='".$xx."'";

 此两个sql语句 中 如果变量$xx含有单引号  $sql执行成功$sql2出错 我测试发现 $sql中 $xx变量解析后 其中的单引号 会被加反斜杠 而$sql2中的单引号 不会被加反斜杠 原因就是这样  但是为什么了?我本以为 这两种写法 是一样的.求高人解答。

[code="java"]<?php
$xx = "aaa d'b";
$sql="update a set b='$xx' ";

echo $sql;
?>[/code]

输出结果
update a set b='aaa d'b'

所以这个php配置有关的,你可能在php.ini中配置了magic_quotes_gpc=on。

[quote]$sql="update a set b='$xx' ";

$xx变量解析后 其中的单引号 会被加反斜杠[/quote]

反斜杠很有可能是在数据库级别加的,你在php中echo出来看看,看有没有加反斜杠。