
其实就是循环和可变变量的问题
直接获取所有的结果 select from dollar;
获取的结果为(使用原生太的)
$result= mysql_query(" select from dollar ");//循环获取结果,获取后使用可变变量重新赋值
while($row= mysql_fetch_assoc($result)) {
$$row['type'] = $row['money'];
}
获取的结果为(使用第三方数据库类的情况下)
$array = array(['0'] => array(
'id' => '1',
'type'=>'a',
'money'=>'100'
),
['1'] => array(
'id' => '2',
'type'=>'b',
'money'=>'200'
),
);
if($array){
foreach($array as $val){
$$val['type'] = $val['money'];
}
}
echo $a;//100
echo $b;//200
注意了:变量别重复了。
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);
}
>
(2)PDO->exec()处理sql
<php //PDO->exec()处理sql
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$res = $db->exec("insert into user(id,name) values('','php点点通')");
echo $res;
>
(3)PDO::prepare()预处理执行查询
<php //PDO::prepare()预处理执行查询
$res = $db->prepare("select from user");
$res->execute();
while ($row = $res->fetchAll()) {
print_r($row);
}
>
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
$res = $db->query('select from user');
//获取指定记录里第二个字段结果
$col = $res->fetchColumn(1);
echo $col;
>
(2)fetchAll(),从一个结果集中获取数据,然后存放在关联数组中
<php
$res = $db->query('select from user');
$res_arr =$res->fetchAll();
print_r($res_arr);
>
1234567891011121314$con=mysql_connect('localhost','root','');//数据库信息mysql_select_db('shop');//数据库名mysql_query("set names utf8");//设置字符集编码 $sql="select goods_name,goods_number,shop_price from goods";//查询语句$res=mysql_query($sql);//执行查询while($row=mysql_fetch_assoc($res)){ $rows[]=$row;//接受结果集} //遍历数组foreach($rows as $key=>$v){ echo $v['goods_name']"---"$v['goods_number']"---"$v['shop_price']"";}
用 mysql_fetch_array 函数
(以下是例子,把你上前 result 的用户资料取出来)
$aquery=mysql_fetch_array($result);
printf ("ID: %s Name: %s", $aquery["id"], $aquery["name"]);
}
这里是取一行的如果你要取得多行的值,就要用while($aquery=mysql_fetch_array($result)) {}
开发php 怎么能不看 php5 官方手册?
看的懂不,不懂可以hi我。。
原生代码不支持获取上一次执行的sql语句,ThinkPHP用getLastSql()函数获取的,代码如下:
class UserModel extends Model(BaseModel){
public function test($data){
$model = M('user');
$model->add($data);
$sql = $model->getLastSql();
}
TP还有一种种方法就是直接用_sql,这个更方便!
1
$model->_sql();
方法实际执行的就是
2
$model->getLastSql();
用_sql注意中文乱码问题,相来说还是getlastsql比较快,_有时候会因为中文编码出错
至于大小写的问题根本不存在
php不区分这些大小写的。
以上就是关于php语言sql语句查询,根据一个表中一个列读出所对应的数据全部的内容,包括:php语言sql语句查询,根据一个表中一个列读出所对应的数据、php pdo 怎么获取查询出来的结果集、php 中sql怎么取表单的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)