php数据库查询方法 php数据库查询结果处理

PHP数据库查询?php
/**
*
@param
string
$url
地址url
*
@return
$array
返回url对应的id
*/
function
getid($url){
//连接数据库
mysql_connect('localhost','root','user')
or
die('数据库链接失败');
//不清楚数据库名称,这里用dbname代表数据库名称 。需要替换为实际的数据库名称
mysql_select_db('dbname');
mysql_query('set
names
utf8');//如果页面编码是utf-8的 。这里设置查询的编码为utf-8
$sql
=
"select
`id`
from
`visitor`
where
`file`='{$url}'";
$result
=
mysql_query($sql);
//不清楚url是不是会重复,这里循环可以保证得到所有的id
while($row
=
mysql_fetch_assoc($result)){
$id[]
=
$row['id']
}
//如果url不会重复则使用$id[0],如果会重复则循环$id就可以得到每个id了 。
return
$id;
}
关于php操作mysql执行数据库查询的一些常用操作汇总php操作mysql步骤php数据库查询方法:
1.$connect=mysql_connect('localhost','root','123456')
or
die('数据库连接失败 。'mysql_error());链接mysql 。
2.mysql_select_db('database',$connect)选择链接的数据库 。
3.mysql_query('Set
names
gb2312');$sql
=
"select
*
from
blog_article";准备要查询的数据 。
4.$datas
=
mysql_query($sql);执行sql查询 。
5.$data
=
mysql_fetch_assoc($datas)得到查询到的缓存在内存中的一条数据 。
6.print_r($data);
相同点:三个函数都是返回数据库中查询到的一行数据(说的再清楚点就是一条数据) 。
不同点:mysql_fetch_assoc()用的是数据库中相应的字段名作为的key值(也就是数组下标)
如:filed['id']=1;
mysql_fetch_row()用的是自动生成的数字(从0开始依次生成)作为的key值(也就是数组下标)
如:filed[0]=1;
mysql_fetch_array()用的是自动生成的数字(从0开始依次生成)作为的key值(也就是数组下标),而且它还同时生成数据库中相应的字段名作为的key值(也就是数组下标)
如:
filed[0]=1,filed['id']=1;也就是说,mysql_fetch_array()将mysql_fetch_assoc()和mysql_fetch_row()查询到的结果合为php数据库查询方法了一体了 。
mysql_fetch_object()与mysql_fetch_assoc()差不多 。只是mysql_fetch_assoc()返回的是数组 。mysql_fetch_object()返回的是object对象 。
mysql_insert_id() 取得上一步
INSERT
操作产生的
ID 。
mysql_result()
函数返回结果集中一个字段的值 。
mysql_num_fields()
函数返回结果集中字段的数目 。
mysql_affected_rows();返回前一次
MySQL
操作所影响的记录行数 。
mysql_num_rows(mysql_query($sql))获得结果集中行的数目 。
mysql_pconnect()
函数打开一个到
MySQL
服务器的持久连接 。
mysql_pconnect()

mysql_connect()
非常相似,但有两个主要区别:
1.
当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接 。
2.
其次,当脚本执行完毕后到
SQL
服务器的连接不会被关闭 , 此连接将保持打开以备以后使用(mysql_close()
不会关闭由
mysql_pconnect()
建立的连接) 。
mysql_data_seek(mysql_query($sql),8);获得结果集中的第8条数据 。(mysql_num_rows(mysql_query($sql))和mysql_data_seek(mysql_query($sql),8)在mysql_unbuffered_query($sql)不可以使用 。)
mysql_unbuffered_query($sql)和mysql_query($sql)效果差不多,但是
mysql_unbuffered_query($sql)不缓存 。mysql_query($sql)会缓存查询的结果 。
mysql_close();关闭mysql的最近的链接 。
mysql_field_flags(mysql_query($sql),6)返回第六个字段的表属性输出如:not_null
primary_key
auto_increment

mysql_fetch_lengths(mysql_query($sql))返回该条数据的所有字段的每个字段的长度 。返回的是一个数字组成的数组 。
mysql_field_name(mysql_query($sql),3)返回第三个字段的字段名 。
mysql_field_table(mysql_query($sql),0)返回指定字段所在的表名 。
mysql_free_result(mysql_query($sql))
函数释放结果内存 。
mysql_get_client_info()
函数返回
MySQL
客户端信息 。
mysql_get_host_info()
取得
MySQL
主机信息 。
thinkphp 数据库查询怎么查?thinkphp如何查询数据库php数据库查询方法?
数据库查询
ThinkPHP内置php数据库查询方法了非常灵活的查询方法php数据库查询方法,可以快速的进行数据查询操作 。
查询条件可以用于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
【php数据库查询方法 php数据库查询结果处理】$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
使用对象方式查询和使用数组查询的效果是相同的,并且是可以互换的,大多数情况下,php数据库查询方法我们建议采用数组方式更加高效,后面我们会以数组方式为例来讲解具体的查询语言用法 。
表达式查询
上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的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中文网其它相关文章!
thinkphp008. 数据库的数据查询008. 数据库的数据查询
本节课我们来了解一下数据库的数据查询方式,单数据、数据集和其它查询 。
一.单数据查询
1. Db::table()中table必须指定完整数据表(包括前缀);
2. 如果希望只查询一条数据,可以使用find()方法,需指定where条件;
Db::table('tp_user')-where('id', 27)-find()
3. Db::getLastSql()方法,可以得到最近一条SQL查询的原生语句;
SELECT * FROM `tp_user` LIMIT 1
4. 没有查询到任何值,则返回null;
5. 使用findOrFail()方法同样可以查询一条数据,在没有数据时抛出一个异常;
Db::table('tp_user')-where('id', 1)-findOrFail()
6. 使用findOrEmpty()方法也可以查询一条数据,但在没有数据时返回一个空数组;
7. Db::table('tp_user')-where('id', 1)-findOrEmpty();
二.数据集查询
1. 想要获取多列数据,可以使用select()方法;
Db::table('tp_user')-select(); SELECT * FROM `tp_user`
2. 多列数据在查询不到任何数据时返回空数组,使用selectOrFail()抛出异常; Db::table('tp_user')-where('id', 1)-selectOrFail();
3. 在select()方法后再使用toArray()方法,可以将数据集对象转化为数组;
4. 当在数据库配置文件中设置了前缀 , 那么我们可以使用name()方法忽略前缀; Db::name('user')-select();
三.其它查询
1. 通过value()方法,可以查询指定字段的值(单个),没有数据返回null;
Db::name('user')-where('id', 27)-value('username');
$user = Db::table('tp_user')-select()-toArray(); dump($user);
2. 通过colunm()方法,可以查询指定列的值(多个) , 没有数据返回空数组; Db::name('user')-column('username');
3. 可以指定id作为列值的索引;
4. 如果处理的数据量巨大,成百上千那种,一次性读取有可能会导致内存开销过大;
5. 为了避免内存处理太多数据出错 , 可以使用chunk()方法分批处理数据;
6. 比如,每次只处理100条,处理完毕后,再读取100条继续处理;
7. 可以利用游标查询功能,可以大幅度减少海量数据的内存开销,它利用了PHP生成器特性 。每次查询只读一行,然后再读取时,自动定位到下一行继续读取;
Db::name('user')-column('username', 'id');
Db::table('tp_user')-chunk(3, function($users) { foreach ($users as $user) {
dump($user);
}
echo 1; });
$cursor = Db::table('tp_user')-cursor(); foreach($cursor as $user){
dump($user);
}
php session登陆成功后怎么查询数据库在使用php session进行数据查询时主要有3中方法 。第一种是使用函数【mysql_connect()】建立和MYSQL数据库的连接 。mysql_connect()是用来建立和MYSQL数据库的连接,一共有5个参数,一般情况下只使用前3个参数,分别是MySQL服务器地址、用户名以及密码 。第二种是使用函数【mysql_select_db()】指定要操作的数据库 。mysql_select_db()是用来指定要操作的数据库 。要是需要操作的数据库还没有创建,则需要创建数据库 , 然后再创建数据库中的表 。第三种是使用函数【mysql_query()】查询指令 。mysql_query()是查询指令的专用函数,所有的SQL语句都通过它执行,并返回结果集 。一般情况下这三种方法是最适用的,希望可以解决你的问题 。
PHP执行SQL查询怎么做?$haha = M(),$res = $haha-query($sql) 。
或 $res = $waw-execute($sql) 。
$sql中包含了表名,实例化模型时可以为空 。注意query是查功能,execute是增删改功能 。
结构化查询语言(Structured Query Language)简称SQL(发音:/?es kju? ?el/ "S-Q-L"),是一种特殊目php数据库查询方法的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统php数据库查询方法;同时也是数据库脚本文件的扩展名 。
结构化查询语言是高级的非过程化编程语言 , 允许用户在高层数据结构上工作 。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统 。
可以使用相同的结构化查询语言作为数据输入与管理的接口 。结构化查询语言语句可以嵌套 , 这使它具有极大的灵活性和强大的功能 。
1986年10月,美国国家标准协会对SQL进行规范后 , 以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准 。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充 。
所以,实际上不同数据库系统之间的SQL不能完全相互通用 。
关于php数据库查询方法和php数据库查询结果处理的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读