重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
亲,你的想法有问题,这是不符合要求的。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、网页空间、营销软件、网站建设、市北网站维护、网站推广。
数据库中有很多的表,表中有字段。因此你不可能查询数据库中的id和news,而是只能在特定的表上查询。同时sql语法也要求
select
fields
from
table_name而不是db_name哦。
举例来说,保存新闻的表名字是news,
位于数据库
my_test_db中,那么应该
$con = mysql_connect("127.0.0.1", "123", "123");
mysql_select_db('my_test_db', $con);
$sql = "select id, news from news";后面的代码就一样了
$count = mysql_num_rows(mysql_query('select * from where `用户名`="张三" or where `分数`="100"'));
if ($count 0){
//不记录
}else{
//记录
}
要不照片数据(也就是测试数据)那个就不要再存储type,而是再加一个照片-类别对照表,结构为
照片id 类别id
1 2
1 4
1 5
2 1
2 3
3 1
3 3
这样在查询和删除时都会简单一些。 或者这样,将type字段改为00000这种表示,每一位对应一个分类,属于一个分类就置1,比如你现在5个分类,id为1的那张照片是2、4、5,那分类就是01011,计算出这个字符串后比如存入sl,那查询的时候查找left(type,len(type))=sl的就行了,这个是考虑到以后分类可能扩充的问题,如果不考虑当然查type=sl就行了。这个效率偶不清楚,未做测试
PHP+Mysql多条件多值查询示例代码:
index.html代码:
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
titleSQL多条件查询示例/title
/head
body
form method="post" action="deal.php"
h1房屋出租/h1
房屋类型:select name="type"
option value="1"一居室/option
option value="2"二居室/option
option value="3"三居室/option
/selectbr/
面积:input name="area" type="text"/br/
地址:input name="addr" type="text"/br/
input name="btn" type="submit" value="搜索" /br/
/form
/body
/html
deal.php文件:
?php
//连接数据库
$conn=mysql_connect("localhost","root","");
//选择数据库
$db=mysql_select_db("数据库名");
//接收 参数
$type=$_POST['type'];
$area=$_POST['area'];
$addr=$_POST['addr'];
//SQL语句主题
$query="select * from room where ";
//根据条件和传的值拼接sql语句
//判断面积不为空
if($type!=""){
//然后根据具体面积分情况拼接
switch($type){
case 1:
//一居室
$query.=" room_type=1";
break;
case 2:
$query.=" room_type=2";
break;
case 3:
$query.=" room_type=3";
break;
}
}
//面积
if($area!=""){
$query.=" and area ={$area}";
}
//地址
if($addr!=""){
$query.=" and addr like '%{$addr}%'"; //地址
}
//执行查询
$result=mysql_query($query);
//遍历结果
echo "搜搜结果如下:";
while($row=mysql_fetch_array($result)){
echo "地址:".$row['addr'];
echo "br/";
echo "面积:".$row['area'];
echo "br/";
echo "居室:".$row['type'];
echo "br/";
echo "价格:".$row['addr'];
echo "br/";
//等等
}
?
完整的代码如下:
$con = mysql_connect('localhost(服务器地址)', '数据库用户名', '数据库密码');
//数据库连接。
if (!$con)
{
die('Could not connect: ' . mysql_error());
}//连接失败输出错误
mysql_select_db('数据库名', $con);
$sql = "select Name from 表名;";
$result = mysql_query($sql,$con);
while($row= mysql_fetch_array($result)){
echo $row['Name'];
}
thinkphp如何查询数据库?
数据库查询
ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作。
查询条件可以用于CURD等任何操作,作为where方法的参数传入即可。
ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用索引数组或者对象来作为查询条件,因为会更加安全。
查询方式
一、使用字符串作为查询条件
这是最传统的方式,但是安全性不高,例如:
1
2
$User = M("User"); // 实例化User对象
$User-where('type=1 AND status=1')-select();
最后生成的SQL语句是
1
SELECT * FROM think_user WHERE type=1 AND status=1
二、使用数组作为查询条件
1
2
3
4
5
$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
// 把查询条件传入查询方法
$User-where($condition)-select();
最后生成的SQL语句是
1
SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1
如果进行多字段查询,那么字段之间的默认逻辑关系是 逻辑与 AND,但是用下面的规则可以更改默认的逻辑判断,通过使用 _logic 定义查询逻辑:
1
2
3
4
5
6
$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR'; //定义查询逻辑
// 把查询条件传入查询方法
$User-where($condition)-select();
最后生成的SQL语句是
1
SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'
三、使用对象方式来查询 (这里以stdClass内置对象为例)
1
2
3
4
5
6
$User = M("User"); // 实例化User对象
// 定义查询条件
$condition = new stdClass();
$condition-name = 'thinkphp';
$condition-status= 1;
$User-where($condition)-select();
最后生成的SQL语句和上面一样
1
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
使用对象方式查询和使用数组查询的效果是相同的,并且是可以互换的,大多数情况下,我们建议采用数组方式更加高效,后面我们会以数组方式为例来讲解具体的查询语言用法。
表达式查询
上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,并且可以用于数组或者对象方式的查询(下面仅以数组方式为例说明),查询表达式的使用格式:
1
$map['字段名'] = array('表达式','查询条件');
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
1
2
3
4
$map['id'] = array('eq',100); id = 100;
$map['id'] = array('egt',100);id = 100
$map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查询
$map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')
本文来自ThinkPHP框架技术文章栏目:
以上就是thinkphp如何查询数据库的详细内容,更多请关注php中文网其它相关文章!