通过php创建数据库和表

xt0899hw  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(323)

我想自动创建一个数据库,执行描述模板表的/tmp/tmp.sql,并将其注册到新创建的数据库中。

<?php
    //create db
    $uuid= "uniqueID";
    $dbname = $uuid.'_reservedb';

    //connectーーーーーーーーーーーーーーーー
    $dsn = 'mysql:;host=localhost';
    $user = 'root';

    try {
        $dbh = new PDO($dsn, $user);
        print_r("success\n");
    } catch (PDOException $e) {
        print_r('Error:'.$e->getMessage());
        die();
    }
    print_r($dbname."\n");

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = file_get_contents('/tmp/tmp.sql');
    $rtn=$dbh->exec($sql);
    if($rtn){
        print_r("OK\n");
    }else
        print_r("NG\n");;
    ?>

它显示消息“success”和“ok”,但是没有从sql命令“show databases;”中检查名为“success uniqueid\u reservedb”的新数据库我用sql命令showdatabases确认了,但是没有新的数据库。
当然,/tmp/tmp.sql没有运行。
请告诉我怎么了?

gzszwxb4

gzszwxb41#

exec返回number或rows infected或false,因此根据文档,您的测试是不正确的。
注意:它说执行一个sql语句,不是很多。

相关问题