• PHP 单引号与双引号的区别 SQL中的使用


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

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

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

    如:

    双引号内直接嵌套单引号

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

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

    [php] view plain copy
     
    1. $c = 1;  
    2. echo "$c";           //输出1  
    3. $c = 1;  
    4. echo '$c';           //输出$c  
    但是当用在sql语句中时当引号内有变量需要被解释时
    如SQL语句可以写成:
    [php] view plain copy
     
    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、用来转义实现双引号内嵌套双引号(尤其是有变量的时候,双引号内的变量能被解释)

    [php] view plain copy
     
    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. }  
    也可以写在这样
    [php] view plain copy
     
      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代码原理一样

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

  • 相关阅读:
    Git安装及配置-拉取远程仓库代码
    Leangoo领歌敏捷项目管理工具新增测试管理功能
    Xcode中的Vim--XVim
    npm安装报错:源文本中存在无法识别的标记
    给找不到类型文件的依赖增加TypeScript类型声明
    输入框为空时,按钮灰色不可点
    Django settings.py设置 DEBUG=False后静态文件无法加载解决
    mongodb系列~开发规范
    mongodb系列~升级版本
    CIM基础平台性能指标
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/6857179.html
Copyright © 2020-2023  润新知