$sql=<<<EOF .... EOF;中,输入sql语句,同时插入三条记录,如想把密码用md5加密,要如何做呢?

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

奉化奔腾JAVA

2015-03-12 22:04

$sql=<<<EOF

INSERT user (username,password,email) VALUES("傅1", "'.md5('fhfjy').'","fhfjy@126.com"),

("傅2", "'.md5('fhfjy').'","fhfjy@126.com"),

("傅3", "'.md5('fhfjy').'","fhfjy@126.com")

EOF;

================================

插入后,去数据库里看到的密码是:  '.md5('fhfjy').'   这样的!

写回答 关注

5回答

  • King
    2015-03-15 14:44:53

    用变量替代只能

    ^-^...

    UFO201... 回复UFO201...

    $str = md5("Shanghai"); echo ("Shanghai:".$str."<br/>");

    2016-04-09 12:15:04

    共 2 条回复 >

  • UFO2015
    2016-04-09 12:16:10
    <?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(32) NOT NULL UNIQUE,
               password CHAR(255) NOT NULL,
               email VARCHAR(255) NOT NULL
               );
    EOF;
        $res = $pdo->exec($sql);
        var_dump($res);
        echo "exec() ? ".$res.": 0 <br/>";
        // define('pwd', 'pdw0001', case_insensitive);
        $pwd = "pwd&md5";
        $pwd1 = "pwd@md51";
        $pwd2 = "pwd$md52";
        $salt = "salt_md5";
    
        $md5 = crypt($pwd, $salt);
        echo "md5:{$md5}<br/>";
        $md51 = crypt($pwd1, $salt);
        echo "md5:{$md51}<br/>";
        $md52 = crypt($pwd2, $salt);
        echo "md5:{$md52}<br/>";
    
        $str = md5("Shanghai");
        echo ("Shanghai:".$str."<br/>");
    
        $sql = <<< EOF
                 INSERT users(username,password,email) 
                 VALUES ("u01","$md5","u01@ufo.xyz"),
                 ("u02","{$md51}","u02@ufo.xyz"),
                 ("u03","$md52","u03@ufo.xyz");
    EOF;
        echo "{$sql}<br/>";
        $res = $pdo->exec($sql);
        var_dump($res);
        echo "<br/>";
    
        echo "exec() ? ".$res.": 0 <br/>";
    }catch(PDOException $e){
        echo ($e->getMessage());
    }
    
    
     ?>

    http://img.mukewang.com/570881f60001ec8906600242.jpg

  • UFO2015
    2016-04-09 00:13:32

    http://www.imooc.com/qadetail/131282?t=158630#id_158630

    $sql = <<<EOF
    INSERT user(username,passwd) VALUES("u01","'.md5()'"),("u02","'.md5('pwd').'"),("u03","'.md5()'");
    EOF;

    EOF;// EOF; 结束符要顶格写(前面不可以有空格!)

    google:

    http://stackoverflow.com/questions/20931450/parse-error-syntax-error-unexpected-t-sl


  • UFO2015
    2016-04-09 00:04:12

    <?php
    // PDO
    try{
        $pdo = new PDO("mysql:host=localhost;dbname=test", 'root', '');
        $sql = <<< EOF
        INSERT user(username,passwd) VALUES("u01","'.md5()'"),("u02","'.md5('pwd').'"),("u03","'.md5()'");
        EOF;
        $result = $pdo->exec($sql);
    }catch(PDOException $e){
        echo $e->getMessage();
    }

    //To print a list of all the drivers that PDO currently supports, use the following code:

    $xxx = var_dump(PDO::getAvailableDrivers());
    echo ($xxx);

    ?>

  • UFO2015
    2016-04-09 00:03:11

    Parse error: syntax error, unexpected '<<' (T_SL) in G:\wwwRoot\php\pdo_md5.php on line 5


PDO—数据库抽象层

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

30043 学习 · 396 问题

查看课程

相似问题