<span style="font-size:18px;">一个:运行准备好的语句和绑定参数insert

try {
$pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456");
}catch(PDOException $e){
echo $e->getMessage();
} /* pdo中有两种占位符号
*
* ? 參数 --- 索引数组。 按索引顺序使用
* 名字參数 ----关联数组。 按名称使用,和顺序无关
*/ $stmt=$pdo->prepare("insert into shops(name, price, num, desn) values(? , ?, ?, ?)"); //全部SQL都可运行 //准备好了一条语句。并入到server端,也已经编译过来了,就差为它分配数据过来
// $stmt=$pdo->prepare("insert into shops(name, price, num, desn) values(:name,:price, :num, :desn)"); //绑定名字參数 顺序能够不一致和名字相应就可以
/* $stmt->bindParam(":name", $name);
$stmt->bindParam(":num", $num);
$stmt->bindParam(":desn", $desn);
$stmt->bindParam(":price", $p);
*/
////绑定 问好?參数---得按顺序绑定
$stmt->bindParam(1, $name, PDO::PARAM_STR);//第3个參数是数据类型可不用写,会自己主动找类型
$stmt->bindParam(3, $num, PDO::PARAM_INT);
$stmt->bindParam(4, $desn, PDO::PARAM_STR);
$stmt->bindParam(2, $p, PDO::PARAM_STR); $name="wwww1";
$num=101;
$desn="hello1";
$p=34.51; if($stmt->execute()){
echo "运行成功";
echo "最后插入的ID:".$pdo->lastInsertId();
}else{
echo "运行失败! ";
} //多次插入------------想运行多次。。 。 N次,传值就可以
$name="wwww1";
$num=101;
$desn="hello1";
$p=34.51; if($stmt->execute()){
echo "运行成功";
echo "最后插入的ID:".$pdo->lastInsertId();
}else{
echo "运行失败!"; } 二:预处理语句UPDATE try {
$pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456");
}catch(PDOException $e){
echo $e->getMessage();
} /* pdo中有两种占位符号
*
* ? 參数 --- 索引数组, 按索引顺序使用
* 名字參数 ----关联数组。 按名称使用。和顺序无关
*/ //准备好了一条语句,并入到server端,也已经编译过来了。就差为它分配数据过来
//$stmt=$pdo->prepare("insert into shops(name, price, num, desn) values(?, ?, ?, ? )"); //全部SQL都可运行 //update和insert一样
$stmt=$pdo->prepare("update shop set name=:name,num=:num,price=:price,desn=:desn where id=:id"); //全部SQL都可运行 //绑定名字參数 顺序能够不一致和名字相应就可以
$stmt->bindParam(":name", $name);
$stmt->bindParam(":num", $num);
$stmt->bindParam(":desn", $desn);
$stmt->bindParam(":price", $p);//变量名字随便写
$stmt->bindParam(":id", $id); $name="nnn";
$num=101;
$desn="hello1";
$p=34.51;
$id=108; if($stmt->execute()){
echo "运行成功";
//echo "最后插入的ID:".$pdo->lastInsertId();
}else{
echo "运行失败! ";
} //接着传值运行第二次-----N次,这就是PDO预处理,仅仅会编译一次SQL,其它想运行传值就能够
$name="mmm";
$num=101;
$desn="hello1";
$p=34.51;
$id=109; if($stmt->execute()){
echo "运行成功";
}else{
echo "运行失败。";
} 三:预处理插入多条 try {
$pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456");
}catch(PDOException $e){
echo $e->getMessage();
} /* pdo中有两种占位符号
*
* ? 參数 --- 索引数组。 按索引顺序使用
* 名子參数 ----关联数组, 按名称使用,和顺序无关
*/ $stmt=$pdo->prepare("insert into shops(name, price, num, desn) values(?, ? , ?, ?)"); //全部SQL都可运行--syi=== //准备好了一条语句,并入到server端。也已经编译过来了。就差为它分配数据过来
// $stmt=$pdo->prepare("insert into shops(name, price, num, desn) values(:name,:price, :num, :desn)"); //绑定參数
/* $stmt->bindParam(":name", $name);
$stmt->bindParam(":num", $num);
$stmt->bindParam(":desn", $desn);
$stmt->bindParam(":price", $p);
*/
//绑定參数
$stmt->bindParam(1, $name, PDO::PARAM_STR);
$stmt->bindParam(3, $num, PDO::PARAM_INT);
$stmt->bindParam(4, $desn, PDO::PARAM_STR);
$stmt->bindParam(2, $p, PDO::PARAM_STR); $name="wwww1";
$num=101;
$desn="hello1";
$p=34.51; if($stmt->execute()){
echo "运行成功";
echo "最后插入的ID:".$pdo->lastInsertId();
}else{
echo "运行失败!";
} $name="ooo";
$num=101;
$desn="hello1";
$p=34.51; if($stmt->execute()){
echo "运行成功";
echo "最后插入的ID:".$pdo->lastInsertId();
}else{
echo "运行失败!";
} 四:不绑定參数。直接execute中带值运行sql try {
$pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456");
}catch(PDOException $e){
echo $e->getMessage();
} /* pdo中有两种占位符号
*
* ? 參数 --- 索引数组, 按索引顺序使用
* 名子參数 ----关联数组, 按名称使用。和顺序无关
*/ //准备好了一条语句,并入到server端,也已经编译过来了,就差为它分配数据过来
$stmt=$pdo->prepare("insert into shops(name, price, num, desn) values(:name,:price, :num, :desn)"); // $stmt->execute($_POST);
//传值是能够不按顺序--这是名字參数
$stmt->execute(array(":price"=>99, ":name"=>"kkk1", ":num"=>"451", ":desn"=>"aaaaaa1"));
$stmt->execute(array(":price"=>88, ":name"=>"kkk2", ":num"=>"452", ":desn"=>"aaaaaa2"));
$stmt->execute(array(":price"=>77, ":name"=>"kkk3", ":num"=>"453", ":desn"=>"aaaaaa3")); 五:获取结果集 try {
$pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456");
}catch(PDOException $e){
echo $e->getMessage();
} //获取结果 fetch()取一条--返回的是关联和索引数组一起返回
//获取结果 fetchAll(); 得到得是二维数组 $stmt=$pdo->prepare("select id, name, price, num, desn from shops where id > :id order by id"); $stmt->execute(array(":id"=>100)); //假设预SQL没有參数时,execute也不用带參数 直接问运行就能够 $stmt->setFetchMode(PDO::FETCH_ASSOC);//设置全部的获取模式,全部是关联数组,以下就不用改啦,也能够卸载fetch里面(PDO::FETCH_ASSOC),不写就是默认的类型关联和索引都返回
/*
while($row=$stmt->fetch()){//获取全部查出来的值 循环
print_r($row);
echo '<br>';
}
*/
/*
$row=$stmt->fetch(PDO::FETCH_ASSOC);获取关联数组
$row=$stmt->fetch(PDO::FETCH_NUM); 获取索引数组
$row=$stmt->fetch(PDO::FETCH_BOTH); 关联和索引都返回--默认就是这个
print_r($row);
*/
$data=$stmt->fetchAll(PDO::FETCH_ASSOC); //同上,也能够直接$stmt->setFetchMode(PDO::FETCH_ASSOC);这么设置 echo '<pre>';
print_r($data);
echo '</pre>';</span>

版权声明:本文博客原创文章,博客,未经同意,不得转载。

PDO进行sql报表编制结果集介绍及操作(两)的更多相关文章

  1. 使用PDO执行SQL语句exec()、query()

    在PHP脚本中,通过PDO执行SQL查询与数据库进行交互,可以分为三种不同的策略,使用哪一种方法取决于你要做什么操作. 1.使用PDO::exec()方法 当执行INSERT.UPDATE和DELET ...

  2. 六、K3 WISE 开发插件《直接SQL报表开发新手指导 - BOM成本报表》

    ======================== 目录: 1.直接SQL报表 ======================== 1.直接SQL报表 以BOM成本报表为例,在销售模块部署,需要购买[金蝶 ...

  3. 跟着百度学PHP[14]-PDO的错误处理模式&PDO执行SQL

    我们在使用PDO去执行sql语句的时候并不会报错.如下案例所示: <?php try { //$pdo = new pdo("mysql:host=主机;port=端口;dbname= ...

  4. SQL Server 2005 系统数据介绍:dm_exec_connections

    原文:SQL Server 2005 系统数据介绍:dm_exec_connections 转载:http://msdn.microsoft.com/zh-cn/library/ms181509(SQ ...

  5. SQL Server 2014 各版本介绍

    SQL Server 2014 各版本介绍 目前,SQL Server 2014 分为主要版本和专业版. 在选择版本的时候可以根据您具体的需要进行抉择,如果你需要一个免费的数据库管理系统,那么就选择 ...

  6. SQL Server 存储中间结果集

    在SQL Server中执行查询时,有一些操作会产生中间结果集,例如:排序操作,Hash Join和Hash Aggregate操作产生的Hash Table,游标等,SQL Server查询优化器使 ...

  7. SQL报表(Report Builder)里面的几个常见问题(持续更新)

    一 SQL报表常常会遇到在表格中的相除,如果分母为零,一般会显示错误号,我们可以这么处理:(加上是A/B) ,, B) 但是我们不能这么写: ,,A/B) //我们不能这么写,会产生BUG,至于什么B ...

  8. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  9. java.sql.SQLException: 对只转发结果集的无效操作: last

    出错代码如下:static String u = "user";static String p = "psw";static String url = &quo ...

随机推荐

  1. 移动开发中的Scheme跳转说明——Allowing OtherApps to Start Your Activity

    Allowing OtherApps to Start Your Activity 为了开发更多人使用的App,我们总希望我们的App能够提供一种接口被其他App调用.如我们常见的 大众点评  与  ...

  2. H面试程序(4):翻转句子中单词的顺序 .

    题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“I am a student.”,则输出“stude ...

  3. java jquery 函数多參数传递

    业务需求: 名次   伙伴 业绩 签单 面谈 每日目标 1 文彬 5100 6 10 查看目标 2 马红月 4550 4 6 查看目标 3 王刚 4100 3 9 查看目标 4 郭亚凯 3450 4 ...

  4. Swift调用Objective-C编写的代码(颜色选择器KKColorListPicker调用)

    在Swift项目中,我们可以导入任意用Objective-C写的框架,代码库等.下面以Swift调用Objective-C编写的颜色选择器KKColorListPicker为例. 效果图如下:     ...

  5. (76) Clojure: Why would someone learn Clojure? - Quora

    (76) Clojure: Why would someone learn Clojure? - Quora ★ Why would someone learn Clojure?   Edit

  6. fck编辑器的使用

    FCK编辑器的使用 注意:编辑器有浏览器缓存,所以修改配置后,一定要删一下缓存 这个编辑器是采用 html+javascript 开发出来的 通常作为插件来使用: 1,下载插件包 2,解压,加压之后看 ...

  7. [计算机基础]HTTP协议学习笔记

    HTTP:Hypertext transfer protocol超文本传输协议是一种详细规定了浏览器和Internet之间互相通信的规则 HTTP允许传输任意类型的数据对象,由Content-Type ...

  8. uva live-2322 - Wooden Sticks

    首先排个序,然后找一次0花费,然后再找一次0花费,然后再找一次0花费,然后再找一次0花费......... 最后看找了几次,+1就是答案 #include<iostream> #inclu ...

  9. Eclipse乱码怎么办

    Eclipse里设置编码有三个层次:全局.工程.文件. 文件的编码会覆盖工程的编码,工程的编码会覆盖全局的编码. 我猜测:虽然你的工程编码更改为GBK,但只对新建文件有效. 如果工程中旧有的文件是UT ...

  10. 设置SVN忽略文件和文件夹(文件夹)

    在多数项目中你总会有文件和文件夹不须要进行版本号控制.这可能包含一些由编译器生成的文件,*.obj,*.lst,也许是一个用于存放可运行程序的输出文件夹.仅仅要你提交改动,TortoiseSVN 就会 ...