我想自动创建一个数据库,执行描述模板表的/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没有运行。
请告诉我怎么了?
1条答案
按热度按时间gzszwxb41#
exec返回number或rows infected或false,因此根据文档,您的测试是不正确的。
注意:它说执行一个sql语句,不是很多。