php单引号与双引号用法;引号嵌套方法
1、双引号内不能直接就再嵌套双引号
2、双引号与单引号互相嵌套使用
如:
双引号内直接嵌套单引号
echo “” ;
echo””;
3、php中单引号内的变量不能被解释
如
$c = 1;
echo “$c”; //输出1
$c = 1;
echo ‘$c’; //输出$c
但是当用在sql语句中时当引号内有变量需要被解释时
如SQL语句可以写成:
$sql = “select * from user where id = ‘$id'”;
$sql = “insert into user (`user`,`pwd`) values (‘$a’,’$b’)”;
$sql = “select * from user where id = {$id}”;
$sql = “insert into xadmin values (”,'”.$_POST[‘User’].”‘,'”.$Pwd.”‘,'”.$Xb.”‘,'”.$Xydm.”‘,'”.$_POST[‘Lxr’].”‘,'”.$_POST[‘Lxdh’].”‘,'”.$_POST[‘E_mail’].”‘)”;
变量都是可以被解释的
4、用\来转义实现双引号内嵌套双引号(尤其是有变量的时候,双引号内的变量能被解释)
function error($str,$url=””)
{
if($url!=””)
{
echo””;
exit();
}
else
{
echo””;
}
exit();
}
也可以写在这样
echo “”;
只要是sql语句里面的接受传过来的值得时候统一用这样的方式就不会有什么错误的
例如:$sql=”INSERT INTO `Persons` (`FirstName`, `LastName`, `Age`)
VALUES
(“‘.$_POST[firstname].'”‘,”‘.$_POST[lastname].'”,”‘.$_POST[age]’).'””;
就是列明还有数据表名都加反引号,$_POST[firstname]这种的呢都是
双引号 单引号 点 $_POST[firstname] 点 单引号 双引号,首先sql语句必须是双引号即
$sql=” “;这种格式的。
$sql=”INSERT INTO Persons (FirstName, LastName, Age) VALUES (‘$_POST[firstname]’,’$_POST[lastname]’,’$_POST[age]’)”;
第一种【{$_GET[‘id’]}加不加单引号都能正常执行没问题】
$sql = “select * from `news` where `id` = {$_GET[‘id’]}”;
$query = mysql_query($sql);
第二种【'{$_POST[‘con’]}’第二种必须加单引号,否则没效果】
$sql = “insert into `news` (`id`,`title`,`dates`,`contents`) values(null,'{$_POST[‘tit’]}’,now(),'{$_POST[‘con’]}’)”;
mysql_query($sql);
echo “更新成功”;
其实造成这种现象的原因如下图的js代码原理一样
综上,我是建议还是加上并将其养成良好的习惯。