<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//定义数据源
$dsn="mysql:dbname=test2;host=localhost";
//$dsn="sqlsrv:dbname";
//造pdo对象
$pdo=new PDO($dsn,"root","123"); //写SQL语句
$sql="select * from Info"; //准备执行语句
$st=$pdo->prepare($sql); //执行预处理语句
$st->execute();// 条件判断 返回true 或 false
if ($st->execute()) {
print_r($st->fetch()); //一次调用一条
}
else{
echo "执行失败!";
}
    //从结果集中取所有数据,返回二维数组
    //print_r($st->fetchAll(PDO::FETCH_NUM));
    //从结果集中取一条数据中的某一列,返回字符串
    //var_dump($st->fetchColumn(1));
    //从结果集中取一条数据,返回一个实体类的对象
    //var_dump($st->fetchObject());
?>
</body>
</html>

② ?????  prepare($sql)   bindParam(1,$XX)    $XX="ss"    exectue()  方式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//造PDO对象
$pdo=new PDO("mysql:dbname=test2;host=localhost","root","123"); //写SQl语句
$sql="insert into Info values(?,?,?,?,?)"; //准备SQL语句
$st=$pdo->prepare($sql);
//给SQL语句分配变量
$st->bindParam(1,$code);
$st->bindParam(2,$name);
$st->bindParam(3,$sex);
$st->bindParam(4,$nation);
$st->bindParam(5,$birthday);
//给变量赋值
$code="p120";
$name="回家";
$sex=true;
$nation="n002";
$birthday="1988-9-6";
//执行SQL语句
$st->execute();
?>
</body>
</html>

????? prepare($sql)   exectue(array("ss"))  方式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//造PDO对象
$pdo=new PDO("mysql:dbname=test2;host=localhost","root","123"); //写SQl语句
$sql="insert into Info values(?,?,?,?,?)"; //准备SQL语句
$st=$pdo->prepare($sql);
$st->execute(array('p0030','克隆',true,'n001','1989-2-3'));//把分配变量和赋值干掉,只用这句。 ?>
</body>
</html>

③::::: prepare($sql)   bindParam("",$XX,PDO::PARAM_STR);  $XX=""  exectue() 方式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//造PDO对象
$pdo=new PDO("mysql:dbname=test2;host=localhost","root","123"); //写SQl语句
$sql="insert into info values(:c,:n,:s,:na,:b)"; //准备SQL语句
$st=$pdo->prepare($sql); //绑定参数
$st->bindParam("c",$code,PDO::PARAM_STR);
$st->bindParam("n",$name,PDO::PARAM_STR);
$st->bindParam("s",$sex,PDO::PARAM_STR);
$st->bindParam("na",$nation,PDO::PARAM_STR);
$st->bindParam("b",$birthday,PDO::PARAM_STR); //参数赋值
$code="p181";
$name="纳";
$sex=true;
$nation="n002";
$birthday="1988-2-3"; //执行
$st->execute();
?>
</body>
</html>

::::: prepare($sql)   execute(); 方式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//造PDO对象
$pdo=new PDO("mysql:dbname=test2;host=localhost","root","123"); //写SQl语句
$sql="insert into info values(:c,:n,:s,:na,:b)"; //准备SQL语句
$st=$pdo->prepare($sql);
$st->execute(array('c'=>'p190','n'=>'水果','s'=>true,'na'=>'n002','b'=>'1990-2-3'));
?>
</body>
</html>

PDO:: 数据访问抽象层 ? :的更多相关文章

  1. PDO数据访问抽象层

    PDO数据访问抽象层: 我们使用的mysqli是针对mysql这个数据库扩展的一个类,如果要用到别的数据库的话就可以用PDO来做 1.操作数据库 先来代码 <!--PDO--> <! ...

  2. PDO(数据访问抽象层)、pdo事务功能和预处理功能---2017-05-05

    之前所学的数据访问都是用mysqli做成类来访问的,但是mysqli这个类只是针对mysql这个数据库的:那么如果访问其他类型的数据库呢? 那么这就用到了PDO(数据访问抽象层). 一.关于PDO基本 ...

  3. PHP中关于PDO数据访问抽象层的功能操作

    PDO:数据访问抽象层 具有三大特点: 1.可以访问其它数据库  所有数据库都可以 2.具有事务功能 3.带有预处理语句功能(防止SQL注入攻击) 实例操作代码如下: <?php //1.造PD ...

  4. PDO数据访问抽象层(上)

    PDO比MySQLi功能强大 PDO可以访问MySQL及其它数据库 一.造对象 <?php $dsn = "mysql:dbname = crud;host = localhost&q ...

  5. PDO 数据访问抽象层

    1.操作其它数据库 (1)造对象 $dsn = "mysql:dbname=test3;host=localhost"; //数据源:两个参数:数据库驱动,链接数据库 $pdo = ...

  6. php 之 PDO数据访问抽象层(0513)

    PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口. PDO与mysqli曾经被建议用来取代原本PHP在用的mysql相关函数, 基于数据库使用的安全性,因为后者欠缺对于S ...

  7. 5月13 PDO数据访问抽象层

    方法1:较简单的 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  8. PDO数据访问抽象层(下)

    PDO两大功能 一.事务功能 PDO的事务功能主要控制好几条sql语句同时成功或者同时失败(当其中一条SQL语句有错误时,同时好几条一起失败),失败时可以回滚操作 1.造对象 <?php $ds ...

  9. php PDO:数据访问抽象层

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. PDO:数据访问抽象层

    <?php //PDO:数据访问抽象层 //带有事务功能: //dsn:数据源 $dsn="mysql:host=localhost;dbname=aaas"; //造pdo ...

随机推荐

  1. spring整合jedis时所遇问题

    @Test public void testSpringJedisPool(){ ApplicationContext ac = new ClassPathXmlApplicationContext( ...

  2. hdu 5685(逆元)

    Problem A Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  3. AC日记——郁闷的出纳员 codevs 1286

    郁闷的出纳员 思路: 设工资下限为ko,然后ko--(因为要小于工资下限): 设cur为记录工资增长,降低: 设第i个人的工资为pos: 对应的四种操作: 插入:cur-pos-ko: 增长:cur- ...

  4. Codeforces Gym 101471D Money for Nothing(2017 ACM-ICPC World Finals D题,决策单调性)

    题目链接  2017 ACM-ICPC World Finals Problem D (这题细节真的很多) 把所有的(pi,di)按横坐标升序排序. 对于某个点,若存在一个点在他左下角,那么这个点就是 ...

  5. Codeforces 754A Lesha and array splitting (搜索)

    题目链接 Lesha and array splitting 设s[i][j]为序列i到j的和,当s[i][j]≠0时,即可从i跳到j+1.目标为从1跳到n+1,所以按照题意暴力即可. #includ ...

  6. ACM的奇计淫巧_输入挂

    什么是输入挂? 众所周知scanf比cin快的多,那么有没有比scanf更快的东西呢?答案就是输入挂,输入挂利用了告诉读取的函数getchar(),然后再人工处理成整数或浮点,比使用scanf快太多. ...

  7. windows 下使用github客户端报错:Failed to publish this branch

    在windows系统下使用github客户端同步的时候报错“Failed to publish this branch”,查找原因,发现结果是安装vscode的时候没有检查到git,然后安装git后库 ...

  8. wireshark学习笔记

    之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS. 这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括http,TCP,UDP,等网络协议包. 记得大学的 ...

  9. Android的Framework分析---5 ActivityManager分析

    Android系统开发交流群:484966421 OSHome. 微信公众号:oshome2015 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font ...

  10. InnoDB Insert(插入)操作(下)--mysql技术内幕

    接上一篇文章,最后做的那个实验,我是想证明mysql innodb存储引擎,commit操作与flush数据到磁盘之间的关系,当与同事交流之后,他说,你应该把innodb_buffer_size的大小 ...