如果数据库不存在,我该如何使用PHP创建一个数据库?

6

如何使用PHP创建数据库(如果不存在)?


你为什么想要这个?数据库通常是手动预先创建的。但是你可能有一个合理的理由,谁知道呢... - Bart van Heukelom
2个回答

15
假设你正在谈论MySQL数据库-你需要使用mysql_querymysql_select_db。请注意mysql_create_db已经过时。
<?php
// Connect to MySQL
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

// Make my_db the current database
$db_selected = mysql_select_db('my_db', $link);

if (!$db_selected) {
  // If we couldn't, then it either doesn't exist, or we can't see it.
  $sql = 'CREATE DATABASE my_db';

  if (mysql_query($sql, $link)) {
      echo "Database my_db created successfully\n";
  } else {
      echo 'Error creating database: ' . mysql_error() . "\n";
  }
}

mysql_close($link);
?>

2

既然你提到了WAMP,我就假定你在谈论MySQL。

这可能有些棘手。假设你的PHP脚本已经使用了所有必要的凭证(这本身就是一个值得怀疑的想法),那么你可以运行这个查询:

SHOW DATABASES

如果数据库没有出现在那里,您可以假设它不存在,并使用以下查询之一创建它:
CREATE DATABASE foo ....

或者:

CREATE DATABASE IF NOT EXISTS foo ...

紧接着,您需要检查您正在使用的任何PHP函数(例如mysql_query)的返回值。如果您的用户无法看到所有现有数据库或不允许创建新数据库,则上述查询将失败。

总的来说,我觉得整个概念有点可怕。请小心处理!;-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接