mysql如何在sql语句中用php变量

在框架自带的数据库操作不能满足项目需求的时候,原生的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会把它里面的内容当成字符串来处理。

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

例子

<?php
$a = 'Hello Word!' ;
echo  '$a' ;
echo  "$a" ;
//这两个输出的结果是不一样的
//第一个输出就是$a
//第二个输出Hello Word!


//数据库查询例子:
$username = 'admin' ;
$sql = "select * from user where username='$username'" ;

{}大括号也可以但是也得必须是双引号。但是双引号直接就当变量解析了。所以加不加{}没啥用




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

比如:

$condition = "a_size";
$single_size = 30;
$sql_count = "select count(*) as count from foot_info WHERE '$condition' = '$single_size' ";

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

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

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

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

答:把$condition的引号去掉就好。。




php+mysql+like+通配符+变量

三种方法:


【一】像你这种aa前后都是特殊字符,而且最外侧是双引号的可以直接写变量名


$result  = mysql_query( "SELECT * FROM table1 WHERE name LIKE '%$var%'" );



【二】也可以使用点连接符对字符串进行连接:


$result  = mysql_query( "SELECT * FROM table1 WHERE name LIKE '%"  $var  "%'" );



【三】可以使用{}代码域来分隔变量名,这种用法更适用于变量后有数字、字母、下划线的情况,它可以明确地将变量与字符串区分开来:


$result  = mysql_query( "SELECT * FROM table1 WHERE name LIKE '%{$var}%'" );

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值