问答详情
源自:2-1 [PDO] exec()方法执行建表操作

为什么我的总是 boolean false

<?php

    //连接数据库

    $dsn = 'mysql:host=127.0.0.1;dbname=imooc';

    $pdo = new PDO($dsn, 'root', '');

    //SQL语句

    $sql=<<<EOF

     CREATE TABLE user(

       id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

       username VARCHAR(20) NOT NULL UNIQUE,

       password CHAR(32) NOT NULL,

       email VARCHAR(30) NOT NULL

     );

EOF;

    $RE = $pdo->exec($sql);

    var_dump($RE);

?     为什么我的总是 boolean false


提问者:qq_Runningman_14242494 2017-01-03 21:49

个回答

  • 无畏前行
    2017-01-13 17:02:19

    <?php

    header("Content-type:text/html;charset=utf-8");

    try {

        //pdo_exec()执行一条sql语句并返回其受影响的行数,没有受影响的行数则返回0

        //pdo_exec()对应select查询操作无效

        $pdo = new PDO('mysql:host=localhost;dbname=test','root','root');

        $sql=<<<EOF

            CREATE TABLE IF NOT EXISTS ceshi (

                id INT UNSIGNED AUTO_INCREMENT KEY,

                username VARCHAR(20) NOT NULL UNIQUE,

                password CHAR(32) NOT NULL,

                email VARCHAR(30) NOT NULL,

            );

    EOF;

        $res = $pdo->exec($sql);

        var_dump($res);

    }catch (PDOException $e){

        echo $e->getMessage();

    }

    运行之后,为什么我的也是bool(false);

  • 向大佬看齐
    2017-01-04 18:12:12

    try {
     $pdo=new PDO('mysql:host=127.0.0.1;dbname=xsgl','root','');
     //var_dump($pdo);
      $sql=<<<EOF
      CREATE TABLE IF NOT EXISTS myuser2(
      id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
      username VARCHAR(20) NOT NULL UNIQUE,
      password CHAR(32) NOT NULL,
      email VARCHAR(30) NOT NULL
      );
    EOF;
     $res=$pdo->exec($sql);
     var_dump($res); 
    } catch (PDOException $e) {
     echo $e->getMessage();
    }

    不错啊