mysqli有两种数据库连接方式:
①.、面向过程式连接:
mysqli_connect('localhost','xxx','xxx','xxx');
mysqli_query('');
后使用mysqli_fetch_assoc方法获取到数据.
$mysqli?=?new?mysqli("localhost",?"my_user",?"my_password",?"world");
$result?=?$mysqli-query('');
后使用$result-fetch_assoc()获取数据.
至于num_rows是获取查询到的行数的方法.
通过for循环
$sql=mysql_query("select?*?from?表名?where?name=张三")
for($i=0;$imysql_num_rows($sql);$i++){
$result[$i]?=?mysql_fetch_assoc($sql);
}
临时写的,比较匆忙.可以自己看看.
mysql_num_rows是获取一同有多少条数据
mysql_fetch_assoc和mysql_fetch_array差不多,自己查
从查询结果取值,需要遍历结果集!示例如下:
$rs?=?mysql_query("select?*?from?www_liu?where?xx='$xx'?and?yy='$yy'");
echo?"查询信息如下:br/";
while($row?=?mysql_fetch_array($rs))
{
echo?"br?/";
//关闭数据库连接
//mysql_close();
php使用PDO抽象层获取查询结果,主要有三种方式:
(1)PDO::query()查询.
看下面这段php代码:
php //PDO::query()查询
$res = $db-query('select * from user');
$res-setFetchMode(PDO::FETCH_NUM); //数字索引方式
while ($row = $res-fetch()){
print_r($row);
php //PDO-exec()处理sql
$db-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$res = $db-exec("insert into user(id,name) values('','php点点通')");
echo $res;
php //PDO::prepare()预处理执行查询
$res = $db-prepare("select * from user");
$res-execute();
while ($row = $res-fetchAll()) {
setAttribute() 方法是设置属性,常用参数如下:
PDO::CASE_LOWER -- 强制列名是小写
PDO::CASE_NATURAL -- 列名按照原始的方式
PDO::CASE_UPPER -- 强制列名为大写
setFetchMode方法来设置获取结果集的返回值的类型,常用参数如下:
PDO::FETCH_ASSOC -- 关联数组形式
PDO::FETCH_NUM -- 数字索引数组形式
PDO::FETCH_BOTH -- 两者数组形式都有,这是默认的
PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()
对上面总结如下:
查询操作主要是PDO::query()、PDO::exec()、PDO::prepare().
PDO-query() — 处理一条SQL语句,并返回一个"PDOStatement"
PDO-exec() — 处理一条SQL语句,并返回所影响的条目数
PDO::prepare()主要是预处理操作,需要通过$rs-execute()来执行预处理里面的SQL语句
最后介绍两个常用的函数:
(1)fetchColumn()获取指定记录里一个字段结果,默认是第一个字段!
php
//获取指定记录里第二个字段结果
$col = $res-fetchColumn(1);
echo $col;
$res_arr =$res-fetchAll();
print_r($res_arr);
SELECT
语句用于从数据库中选取数据.
语句1:SELECT
*
FROM
table_name
解说:意思就是读取整个表table_name里面的数据显示出来
Where
x
=
解说:意思就是读取表table_name里面键名为:x
值为:1的
数据显示出来
例子:
if?(!$con)
die('Could?not?connect:?'?.?mysql_error());
mysql_select_db("my_db",?$con);
$result?=?mysql_query("SELECT?*?FROM?Persons");
while($row?=?mysql_fetch_array($result))
echo?$row['FirstName']?.?"?"?.?$row['LastName'];
echo?"br?/
";
mysql_close($con);
这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:
mysql_query("SET
NAMES
代码如下:
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES 'GBK'");
thinkphp如何查询数据库?
数据库查询
ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作.
查询条件可以用于CURD等任何操作,作为where方法的参数传入即可.
ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用索引数组或者对象来作为查询条件,因为会更加安全.
查询方式
第一段:使用字符串作为查询条件
这是最传统的方式,但是安全性不高,例如:
$User = M("User"); // 实例化User对象
$User-where('type=1 AND status=1')-select();
最后生成的SQL语句是
SELECT * FROM think_user WHERE type=1 AND status=1
第二段:使用数组作为查询条件
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
// 把查询条件传入查询方法
$User-where($condition)-select();
SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1
如果进行多字段查询,那么字段之间的默认逻辑关系是 逻辑与 AND,但是用下面的规则可以更改默认的逻辑判断,通过使用 _logic 定义查询逻辑:
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR'; //定义查询逻辑
SELECT * FROM think_user WHERE 'name'='thinkphp' OR +account+='thinkphp'
第三段:使用对象方式来查询 (这里以stdClass内置对象为例)
// 定义查询条件
$condition = new stdClass();
$condition-name = 'thinkphp';
$condition-status= 1;
最后生成的SQL语句和上面一样
SELECT * FROM think_user WHERE +name+='thinkphp' AND status=1
使用对象方式查询和使用数组查询的效果是相同的,并且是可以互换的,大多数情况下,我们建议采用数组方式更加高效,后面我们会以数组方式为例来讲解具体的查询语言用法.
表达式查询
上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,并且可以用于数组或者对象方式的查询(下面仅以数组方式为例说明),查询表达式的使用格式:
$map['字段名'] = array('表达式','查询条件');
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
$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')
以上就是土嘎嘎小编为大家整理的php获得查询数据相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!