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的基础知识,“双引号解析变量,单引号不解析变量”
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.php语言处理什么的
/////////////////////////////////////
我⼜输出了上⾯两个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的引号去掉就好。。