zoukankan      html  css  js  c++  java
  • PHP中sql语句如何使用变量

    SQL语句变量问题

    先讲下单引号和双引号的问题

    ''单引号 php会把它里面的内容当成字符串来处理。

    ""双引号 php会根据里面的值来处理。比如里面有变量 那么变量的值就会把变量替换。

    例子

    <?php
    $a='Hello Word!';
    echo '$a';
    echo "$a";
    //这两个输出的结果是不一样的
    //第一个输出就是$a
    //第二个输出Hello Word!
    //数据库查询例子:
    $username='admin';
    $sql="select * from user where username='$username'";
     
     
    2
    不行的,变量是要加大括号的,或者使用字符串连接符连接2个字符串。
    1如果你的$meal是一个变量、mealnum是字符型的数据的列,就这样写:
    $result = mysql_query("SELECT * FROM {$res} WHERE mealnum=‘{$meal}’");
    2如果你的$meal是一个变量、mealnum是数字型的数据的列,就这样写:
    $result = mysql_query("SELECT * FROM {$res} WHERE mealnum={$meal}");注意大括号外没单引号。
    3如果你的$meal就职一个字符串、mealnum是字符型的数据的列,就这样写:
    $result = mysql_query("SELECT * FROM {$res} WHERE mealnum=‘$meal’");
    4如果你的$meal就职一个字符串、mealnum是数字型的数据的列,那么就会错误了;
    另外:
    你已经说了$meal是一个字符型,所以就必须加两个单引号,如果是数字型就不需要单引号。
    
    
    
    

    在框架自带的数据库操作不能满足项目需求的时候,原生的sql语句就像是救命稻草。然而自以为基础的sql

    却让我欲仙欲死,眼高手低的坏处。故在此记录一下mysql结合php的例子

    1、mysql中加php变量,第一种方法是用中括号来区分变量

    举个栗子:$sql=" select *  from table where city='{$city}' and state='{$state}' ";

    括号内即为php的变量。在此我发现也有不同的写法,例如:

    。。order by m.dateline DESC limit {$offset},{$page_size}

    数字的话,加{}就可以。字符串的话需要带上单引号:'{}',{}代表括号里面是变量

    2、第二种方法,用".$v."来连接:

    举个栗子:"insert into table_book (bookname,seekwords,author,state,foldername) values ('".$vv.'",5,10,15,20)";

    需要注意的是,字符串是需要加双引号的,这就涉及到php的基础知识,“双引号解析变量,单引号不解析变量”

    php+mysql 语句中被查询的字段可以设置变量么

    1.  
      $condition = "a_size";
    2.  
      $single_size = 30;
    3.  
      $sql_count = "select count(*) as count from foot_info WHERE '$condition' = '$single_size' ";
    4.  
       

    我这样运行,貌似什么也查询不到
    但很奇怪,如果我用字符串连接成sql语句就可以正常查询,如下

    1.  
      $sql_count = "select count(*) as count from foot_info WHERE".$condition." = '$single_size' ";
    2.  
       

    /////////////////////////////////////
    我又输出了上面两个sql语句的输出,分别是

    1.  
      select count(*) as count from foot_info WHERE Foot_Size = '30'//可运行
    2.  
      select count(*) as count from foot_info WHERE 'Foot_Size' = '30'//不可运行

    答:把$condition的引号去掉就好。。
  • 相关阅读:
    我的友情链接
    我的友情链接
    BUMO:超级节点共建接口
    OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题
    零知识证明: 抛砖引玉
    比特币原理
    区块链零知识证明:STARKs,Part-3:攻坚(下)
    什么是zkSNARKs:谜一般的“月亮数学”加密,Part-1
    什么是zkSNARKs:谜一般的“月亮数学”加密,Part-2
    STARKs, Part I: 多项式证明
  • 原文地址:https://www.cnblogs.com/linqingvoe/p/10909777.html
Copyright © 2011-2022 走看看