创建数据库
要创建和删除数据库,您应该具有 admin 权限。创建新的 MySQL 数据库非常容易。PHP 使用 mysql_query 函数创建 MySQL 数据库。此函数采用两个参数,成功时返回 TRUE,失败时返回 FALSE。
语法
bool mysql_query( sql, connection );
参数
参数 | 描述 |
---|---|
SQL | 必需 - 用于创建数据库的 SQL 查询 |
connection | 可选 - 如果未指定,则将使用 mysql_connect 上次打开的连接。 |
例子
尝试以下示例创建数据库 −
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('无法连接: ' . mysql_error());
}
echo '已成功连接';
$sql = 'CREATE Database test_db';
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('无法创建数据库: ' . mysql_error());
}
echo "数据库 test_db 创建成功\n";
mysql_close($conn);
?>
选择数据库
与数据库服务器建立连接后,需要选择与所有表关联的特定数据库。
这是必需的,因为单个服务器上可能有多个数据库,并且您可以一次使用单个数据库。
PHP 提供了选择数据库的函数 mysql_select_db 。成功时返回 TRUE,失败时返回 FALSE。
语法
bool mysql_select_db( db_name, connection );
参数
参数 | 描述 |
---|---|
db_name | 必需 - 要选择的数据库名称 |
connection | 可选 - 如果未指定,则将使用 mysql_connect 上次打开的连接。 |
例子
以下示例显示了如何选择数据库。
<?php
$dbhost = 'localhost:3036';
$dbuser = 'guest';
$dbpass = 'guest123';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('无法连接: ' . mysql_error());
}
echo '已成功连接';
mysql_select_db( 'test_db' );
mysql_close($conn);
?>
创建数据库表
要在新数据库中创建表,您需要执行与创建数据库相同的操作。首先创建 SQL 查询以创建表,然后使用 mysql_query() 函数执行查询。
例子
请尝试以下示例创建表 -
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('无法连接: ' . mysql_error());
}
echo '已成功连接';
$sql = 'CREATE TABLE employee( '.
'emp_id INT NOT NULL AUTO_INCREMENT, '.
'emp_name VARCHAR(20) NOT NULL, '.
'emp_address VARCHAR(20) NOT NULL, '.
'emp_salary INT NOT NULL, '.
'join_date timestamp(14) NOT NULL, '.
'primary key ( emp_id ))';
mysql_select_db('test_db');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('无法创建表: ' . mysql_error());
}
echo "表 employee 创建成功\n";
mysql_close($conn);
?>
如果您需要创建许多表,那么最好先创建一个文本文件,并将所有 SQL 命令放入该文本文件中,然后将该文件加载到 $sql 变量中并执行这些命令。
请考虑文件中的以下内容 sql_query.txt
CREATE TABLE employee(
emp_id INT NOT NULL AUTO_INCREMENT,
emp_name VARCHAR(20) NOT NULL,
emp_address VARCHAR(20) NOT NULL,
emp_salary INT NOT NULL,
join_date timestamp(14) NOT NULL,
primary key ( emp_id ));
php加载:
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('无法连接: ' . mysql_error());
}
$query_file = 'sql_query.txt';
$fp = fopen($query_file, 'r');
$sql = fread($fp, filesize($query_file));
fclose($fp);
mysql_select_db('test_db');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('无法创建表: ' . mysql_error());
}
echo "表 employee 创建成功\n";
mysql_close($conn);
?>