为什么 md5 加密不成功?要开启什么模块吗?

来源:2-2 [PDO] exec()方法执行插入记录操作

UFO2015

2016-04-09 10:21

http://img.mukewang.com/570866e50001975706580242.jpg

<?php 
//PDO
try{
    // $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '123456', options)
    $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '123456');
    $sql = <<< EOF
           CREATE TABLE IF NOT EXISTS users(
           id INT UNSIGNED AUTO_INCREMENT KEY,
           username VARCHAR(20) NOT NULL UNIQUE,
           password CHAR(32) NOT NULL,
           email VARCHAR(32) NOT NULL
           );
EOF;
    $res = $pdo->exec($sql);
    var_dump($res);
    echo "exec() ? ".$res.": 0 \n";

    $sql = <<< EOF
             INSERT users(username,password,email) 
             VALUES ("u01","'.md5('pdw01').'","u01@ufo.xyz"),
             ("u02","'.md5('pdw02').'","u01@ufo.xyz"),
             ("u03","'.md5('pdw03').'","u01@ufo.xyz");
EOF;
    $res = $pdo->exec($sql);
    var_dump($res);
    echo "exec() ? ".$res.": 0 \n";
}catch(PDOException $e){
    echo ($e->getMessage());
}




 ?>


写回答 关注

4回答

  • 用户4681732
    2016-04-09 15:54:36
    已采纳

    从你的结果来看 是因为把         "'.md5('pdw02').'"   双引号中的内容看做是字符串了
    可以把    "'.md5('pdw02').'"  边上的双引号,单引号和. 去掉试试 即变成

    md5('pdw02')  这样

    UFO201...

    非常感谢!

    2016-04-10 16:13:16

    共 1 条回复 >

  • qq_囧人_0
    2016-12-15 11:13:27

    老师视频中是用了字符串连接的方式写SQL语句,所以md5()前后都加了 “.”以连接字符串

    你这里用了分界符,里面的内容保持原样,不需要“.”连接

  • UFO2015
    2016-04-10 16:22:20

    测试通过了!

    http://img.mukewang.com/570a0cfc0001b59f06620529.jpg

    <?php 
    //http://www.imooc.com/qadetail/131311 ?
    /*
    从你的结果来看 是因为把  "'.md5('pdw02').'"   双引号中的内容看做是字符串了,
    可以把 "'.md5('pdw02').'"  边上的双引号,单引号和. 去掉试试 即变成 md5('pdw02') 这样
    (测试通过了!)
    */
    //PDO
    try{
        // $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '123456', options)
        $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '123456');
        $sql = <<< EOF
               CREATE TABLE IF NOT EXISTS users(
               id INT UNSIGNED AUTO_INCREMENT KEY,
               username VARCHAR(20) NOT NULL UNIQUE,
               password CHAR(32) NOT NULL,
               email VARCHAR(32) NOT NULL
               );
    EOF;
        $res = $pdo->exec($sql);
        var_dump($res);
        echo "exec() ? ".$res.": 0 \n";
     
        $sql = <<< EOF
                 INSERT users(username,password,email) 
                 VALUES ("u01",md5('pdw01'),"u01@ufo.xyz"),
                 ("u02",md5('pdw02'),"u01@ufo.xyz"),
                 ("u03",md5('pdw03'),"u01@ufo.xyz");
    EOF;
        $res = $pdo->exec($sql);
        var_dump($res);
        echo "exec() ? ".$res.": 0 \n";
    }catch(PDOException $e){
        echo ($e->getMessage());
    }
     
     ?>


  • UFO2015
    2016-04-10 16:14:17

    http://www.imooc.com/qadetail/68979

    虽然,已经google 解决了!

    但是,还是非常感谢你的回复!

PDO—数据库抽象层

本教程主要通过实战演练深入剖析PDO以加深理解

30043 学习 · 396 问题

查看课程

相似问题