php单引号与双引号用法;引号嵌套方法

1、双引号内不能直接就再嵌套双引号

2、双引号与单引号互相嵌套使用

如:

双引号内直接嵌套单引号

  1. echo "<script language='javascript'> alert('插入成功');</script>" ;
  2. echo"<script language='javascript'>history.go(-2);</script>";

3、php中单引号内的变量不能被解释

  1. $c = 1;
  2. echo "$c";           //输出1
  3. $c = 1;
  4. echo '$c';           //输出$c
但是当用在sql语句中时当引号内有变量需要被解释时
如SQL语句可以写成:
  1. $sql = "select * from user where id = '$id'";
  2. $sql = "insert into user (`user`,`pwd`) values ('$a','$b')";
  3. $sql = "select * from user where id = {$id}";
  4. $sql = "insert into xadmin values ('','".$_POST['User']."','".$Pwd."','".$Xb."','".$Xydm."','".$_POST['Lxr']."','".$_POST['Lxdh']."','".$_POST['E_mail']."')";
变量都是可以被解释的

4、用\来转义实现双引号内嵌套双引号(尤其是有变量的时候,双引号内的变量能被解释)

  1. function error($str,$url="")
  2. {
  3. if($url!="")
  4. {
  5. echo"<meta http-equiv=\"refresh\" content=\"0;URL=$url\">";
  6. exit();
  7. }
  8. else
  9. {
  10. echo"<script language=\"JavaScript\" type=\"text/JavaScript\"> alert(\"$str\");history.back(-1);</script>";
  11. }
  12. exit();
  13. }
也可以写在这样
    1. echo "<script language='javascript'>alert(\"$str\")</script>";

只要是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]')";
 
单引号表示字符串啊,sql语句里字符串都是要单引号的,至于外面的双引号只是为了内部的函数执行做铺垫的。
 
$a = 1;
echo '$a';   =>    $a
echo "$a"    =>    1

第一种【{$_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代码原理一样

综上,我是建议还是加上并将其养成良好的习惯。

PHP 单引号与双引号的区别 SQL中的使用的更多相关文章

  1. C语言 单引号和双引号的区别

    最近的C语言课在教字符串,貌似N多同学搞不清楚单引号和双引号的区别,有人还以为在C语言里用哪个都可以...其实C语言中的单引号和双引号含义是一点也不一样滴... 1.含义不同. 用单引号引起的一个字符 ...

  2. PHP单引号和双引号的区别

    单引号和双引号的区别 .双引号 里的东西 输入的时候能判断是否 包含 变量,如果包含 变量 就一起输出 .单引号里的就不一样,不判断是否有变量,就全部当成 字符串 输出 .单引号解析的时间比双引号快 ...

  3. php单引号和双引号的区别与用法

    php里的单引号把内容当成纯文本,不会经过服务器翻译.而双引号则与此相反.里面的内容会经过服务器处理(process). 举个简单的例子:   $foo="data"; echo ...

  4. SQL - 单引号和双引号的区别

    原文转载至:SQL中的单引号和双引号有区别吗? 在标准 SQL 中,字符串使用的是单引号. 如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义). 但在其它 ...

  5. shell脚本中:单引号和双引号的区别

    单引号和双引号的区别 前面我们还留下一个疑问,定义变量时,变量的值可以由单引号' '包围,也可以由双引号" "包围,它们到底有什么区别呢?不妨以下面的代码为例来说明: #!/bin ...

  6. Delphi学习手记——单引号和双引号的区别

    单引号和双引号的区别 双引号表示其中字符可能包含变量,而单引号表示整个引号内的东西都当成字符串来处理. 也就是说:没有内设变量就用单引号'',有就用双引号"". 举例说明: $va ...

  7. grep正则表达式后面的单引号和双引号的区别

    单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换:双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容! 一般常量用单引号' ...

  8. [转]C语言单引号和双引号的区别

    单引号和双引号在C中的意义完全不同,包围在单引号中的一个字符只是编写整数的另一种方法.这个整数是给定的字符在实现的对照序列中的一个对应的值,即ASCII码值.因此在一个ASCII实现中,‘a’和014 ...

  9. linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

    tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的she ...

随机推荐

  1. C 标准库 - <signal.h>

    C 标准库 - <signal.h> 简介 signal.h 头文件定义了一个变量类型 sig_atomic_t.两个函数调用和一些宏来处理程序执行期间报告的不同信号. 库变量 下面是头文 ...

  2. Eclipse 视图

    Eclipse 视图 关于视图 Eclipse视图允许用户以图表形式更直观的查看项目的元数据. 例如,项目导航视图中显示的文件夹和文件图形表示在另外一个编辑窗口中相关的项目和属性视图. Eclipse ...

  3. 前端学习——使用Ajax方式POST JSON数据包

    0.前言     本文解释怎样使用Jquery中的ajax方法传递JSON数据包,传递的方法使用POST(当然PUT又有时也是一个不错的选择).POST JSON数据包相比标准的POST格式可读性更好 ...

  4. ppycharm设置解释器版本号码

    在pycharm中点击File,之后在弹出的窗口中输入Project Interpreter,点击之后就可以看到自己的解释器版本是多少了,也可以随意选择想要用的解释器版本号码:

  5. C# 通过Hook的方法 屏蔽快捷键

     #region 屏蔽Windows功能键(快捷键)         public delegate int HookProc(int nCode, int wParam, IntPtr lParam ...

  6. C#实现网段扫描

    目录1.使用的类2.获取本地主机IP地址3.远程查询4.实现网段的扫描 ---------------------------------------------------------------- ...

  7. 【转】Android IDA 动态调试最完善攻略,跨过各种坑

    前提条件和运行环境一定要写清楚,不然会有很多坑,坑死人. (1)IDA 是最新的7.0版本  (2) JDB 使用Java安装目录下的 (3)系统是win10 使用命令窗口时有很大的差别 (4)手机是 ...

  8. kbmmw 5.09 发布

    New stuff        =========        - Added kbmMWSmartBind.pas unit with optional kbmMWSmartBindVCL.pa ...

  9. SpringInAction4笔记——复习

    由于目前只做后端的业务代码的开发,所以根据自己掌握的熟悉程度,只需要复习几个模块即可 重点看的是核心容器(IOC),redis,缓存,消息(主要是rabbitmq),事务,springboot,单元测 ...

  10. emoji字符不能插入MySQL数据库,提示“'\xF0\x9F\x98\x84' for column 'XXXX' at row 1”

    从网络中取下的数据解析后不能插入数据库,提示某个字段有问题,问题提示如下: SQLException: Incorrect string value: '\xF0\x9F\x98\x84' for c ...