跟着百度学PHP[14]-PDO的预处理语句2

在$sql = $pdo -> prepare("insert into users(gold,user,password) values(?,?,?)");条语句我们不仅仅可以使用问号这个替代符之外还可以使用

:名称

也就是

$sql = $pdo -> prepare("insert into users(gold,user,password) values(:gold,:user,:password)");

所以在写绑定变量(bindparam)的时候可以那么写:

    $sql = $pdo ->prepare("insert into users(gold,user,password) values(:gold,:users,:password)");
    $sql ->bindparam(:gold,$gold);//绑定给$gold变量。第一个参数的冒号可去除。
    $sql ->bindparam(:user,$users);
    $sql ->bindparam(:password,$password)

    $gold = 12;
    $users ="aaaaaaa";
    $password = "bbbbbbbbb";

使用问号的时候可以相当于索引数组,最大的麻烦就是必须要有数字,每次都需要有数字,在重新插入的时候就很麻烦。

但是我们可以那么做,直接在execute中输出这些数组。

比如问号的时候(即索引数组):

$sql -> execute(array(1,"admin","123465"));

再者冒号的时候(即关联数组):

$sql -> execute(array(":gold"=>"1",":user"=>"admin",":password"=>"123456"));

DEMO: 

<?php
try{
    $pdo = new pdo("mysql:host=localhost;dbname=test","root","");
}catch(PDOException $e){
    echo $e ->getmessage();
    exit;
}
    echo "PDO对象创建成功.<br />";
try {
    $sql = $pdo ->prepare("insert into users(gold,user,password) values(:gold,:user,:password)");
    $sql -> execute(array(":gold"=>"1","user"=>"admin",":password"=>"123456"));

} catch (Exception $e) {
    echo $e->getmessage();
    exit;
}
    echo "sql语句执行成功。";

 ?>

输出效果如下图:

但其实这些都还不是最简单的。

我们可以这样:

$sql -> execute(array($_GET[‘id‘]));

CODE: 

<?php
header("Content-type: text/html; charset=utf-8");
try{
    $pdo = new pdo("mysql:host=localhost;dbname=test","root","");
}catch(PDOException $e){
    echo $e ->getmessage();
    exit;
}
    echo "PDO对象创建成功.<br />";
try {
    $sql = $pdo ->prepare("insert into users(gold,user,password) values(:gold,:user,:password)");
    $sql -> execute($_GET);
} catch (PDOException $e) {
    echo $e->getmessage();
    exit;
}
    echo "sql语句执行成功。";

 ?>

URL:http://127.0.0.1/x.php?gold=2&user=def&password=6666

如此是不是比之前mysql的执行的更加的简单呢?

时间: 2024-10-14 19:56:39

跟着百度学PHP[14]-PDO的预处理语句2的相关文章

跟着百度学PHP[14]-PDO的构造方法

PDO的方法/属性 PDO::beginTransaction — Initiates a transaction PDO::commit — Commits a transaction PDO::__construct — Creates a PDO instance representing a connection to a database //构造方法 PDO::errorCode — Fetch the SQLSTATE associated with the last operat

跟着百度学PHP[4]OOP面对对象编程-7-OOP的一些关键子讲解

面对对象常用的一些关键子:http://www.cnblogs.com/xishaonian/p/6146794.html排版不是很好望见谅. THE END 跟着百度学PHP[4]OOP面对对象编程-7-OOP的一些关键子讲解

跟着百度学PHP[4]OOP面对对象编程-5-内部引用$this

$this就是对象内部代表这个对象的引用 可以调用被封装的方法或者属性! <?php class Person{ private $name; private $age="21"; var $sex; function play(){ echo "他正在玩儿呢"; } private function Hello(){ //使用private封装hello方法.该方法不可直接调用.但是可以在内部使用$this调用. echo "这个是被封装的内容&q

跟着百度学PHP[4]OOP面对对象编程-12-抽象类

什么是抽象方法?我们在类里面定义的没有方法体的方法就是抽象方法.所谓的没有方法体指的是,在方法声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字“abstract”来修饰. 目录==================================== 1.声明一个抽象类,抽象方法(案例一) 2.继承一个抽象类(实例二) ======================================= 案例一 <?php abstract

跟着百度学PHP[4]OOP面对对象编程-12-对象接口技术(interface)

PHP与大多数面向对象编程语言一样,不支持多重继承.也就是说每个类只能继承一个父类. 接口正是解决每个类只能继承一个父类这个问题的 接口用什么权限,继承的那个方法也要使用什么权限. 接口的声明使用:interface 接口的继承使用:implements 目录++++++++++++++++++++++++++++++++++++++++++++ 00x1 接口的声明以及接口的引用(案例一) 00x2 如何继承多个接口(案例二) 00x3 判断某个对象是否实现了某个接口(案例三) +++++++

跟着百度学PHP[4]OOP面对对象编程-7-封装性private

所谓封装顾名思义,如同箱子般给封装起来.结合前面的来说就是对属性或者方法,封装后的方法或属性只能有类内部进行调用.外部调用不了. 封装性的好处: 1.信息隐藏 2.http://www.cnblogs.com/yisss/p/3412702.html 3.https://zhidao.baidu.com/question/2203595698703331308.html 目录------------------------------------- 00X1 进行封装 00x2 如何调用封装的属

跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)

函数就是成员方法(方法有三:构造方法.成员方法.析构方法) 下面是两种方法. 构造方法和构析方法 00x1 构造方法 构造方法会在创建对象之后自动调用.其名称为__construct <?php class Student{ var $name; var $age; var $sex; function __construct(){ //可以从输出中看得出来,我们并没有输出这个方法,但是他自动输出了.这个就是构造方法的作用,会自动的被调用! echo "520PHP<br />

跟着百度学PHP[10]-读取COOKIE案例

<?php if(!isset($_COOKIE['visittime'])){ #使用$_COOKIE获取visittime,如果不存在就执行下面的语句块,否则执行else setcookie('visittime',date('y-m-d h-i-s'));#生成一个visittime的cookie. echo "你是第一次进入网站."; }else{ setcookie('visittime',date('y-m-d h-i-s')); echo "你上一次访问网

跟着百度学PHP[4]OOP面对对象编程-15-魔术方法__call方法

在程序开发中,如果在使用对象调用对象内部方法时候,调用的这个方法不存在那么程序就会出错,然后程序退出不能继续执行.那么可不可以在程序调用对象内部 不存在的方法时,提示我们调用的方法及使用的参数不存在,但程序还可以继续执行,这个时候我们就要使用在调用不存在的方法时自动调用的方 法“__call()”.  THE END 跟着百度学PHP[4]OOP面对对象编程-15-魔术方法__call方法