PDO的使用

  • 持久化连接
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));
?>

Note:

如果想使用持久连接,必须在传递给 PDO 构造函数的驱动选项数组中设置 PDO::ATTR_PERSISTENT 。如果是在对象初始化之后用 PDO::setAttribute() 设置此属性,则驱动程序将不会使用持久连接。

1.预处理的形式用prepare()

$name = '张三';
$id=1;
$stmt = $db>prepare("update names set name=:name where id=:id");
$stmt->execute(array(':name'=>$name,':id'=>$id);
$row = $stmt->fetch();

注意:
预处理的形式的时候,使用prepare()

1.直接使用变量形式query()

$name = 'zhangsan';
$id = 1;
$stmt = $le_db1->query("update names set name='".$name."' where id=$id");
$stmt->execute();

注意:
// sql语句相当于 "update names set name='".'zhangsan'."' where id=$id"
不可以直接把字符串变量写入query中

2. PDO

 1.每次取出一条数据 得到的是一条一维数组。如果没有查询结果,则返回的是布尔值false
$stmt->execute();
 $rows = $stmt->fetch();  


2.取出所有数据,得到的是二维数组
$stmt->execute();
$rows = $stmt->fetchAll();

3.获取执行取出的总条数,不管是执行1还是2,$stmt->rowCount()得到的结果都是一个int类型  没有数据是0
 $cou = $stmt->rowCount(); // 总共取出多少条

3. MYSQI

1.取出一条数据,得到的是一维数组
$stmt = $mysqli->query($sql);
$stmt =$stmt->fetch_row();

2.取出所有数据,得到的是二维数组
$stmt = $mysqli->query($sql);
$stmt =$stmt->fetch_all();

3.取出执行的的条数  没有数据是0
$stmt = $mysqli->query($sql);
$stmt =$stmt->num_rows;


$mysqli->query($sql)
得到的结果是
mysqli_result Object
(
    [current_field] => 0
    [field_count] => 3
    [lengths] => 
    [num_rows] => 5    // 总条数
    [type] => 0
)

4.解决变量为空插入数据库没值无法插入的问题

场景:从一个数据表里面取数据,导入另一个数据表。这个时候有可能有些字段是null值,那么插入新的表里面,我们一般组成的sql语句会变成(,,,)。解决这种方式很简单,我们应该将变量加上单引号即可

$str = 'test';
echo "'$str'"; //得到的结果是 'test' 带引号的test

$name = 'name';
$email = 'email';
$sql = "INSERT INTO test (name,email)VALUES ('$name','$email')";
输出这条sql语句得到的结果是
INSERT INTO test (name,email)VALUES ('name','email')
这样才可以正常的插入

如果是数组,我们要这样插入
$arr = array(
    'name'  =>'name',
    'email' =>'email',
);
$sql = "INSERT INTO test (name,email)VALUES ('{$arr['name']}','{$arr['email']}')";
  • 5.有时候我们用预处理的方式写字段的时候,如果字段比较长的话,会比较麻烦,下面我写了几个函数
//     键值对
function get_param_iteams($row){
    $tmp = array();
    foreach ($row as $key=>$value){
        if (!$value){
            unset($row[$key]);
        }else{
            $tmp =  array_merge($tmp,array(':'.$key=>$value));
        }
    }
    return $tmp;
}

// 带 :
function set_param_iteams_values($arr){
    $keys = array_keys($arr);
    $tmp = '';
    foreach ($keys as $value){
        $tmp= $tmp.','.$value;
    }
    return ltrim($tmp,',');
}
// 没有 :
function set_param_iteams_pre($arr){
    $keys = array_keys($arr);
    $tmp = '';
    foreach ($keys as $value){
        $tmp= $tmp.','.ltrim($value,':');
    }
    return ltrim($tmp,',');
}

// update
function update_iteams($row){
    $tmp = '';
    $keys = array_keys($row);
    foreach ($keys as $val){
        $tmp = $tmp.$val.'=:'.$val;
    }

    return $tmp;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容