MySQL
- web应用方面最好的关系型数据库管理系统(RDBMS)
- DB是按照数据结构来组织、储存和管理数据的仓库
使用PHP脚本连接MySQL
mysqli_connect(host,username,password,dbname,port,socket);
- 在成功链接到 MySQL 后返回连接标识,失败返回 FALSE
- host 可选。规定主机名或 IP 地址
- username 可选。规定 MySQL 用户名
- password 可选。规定 MySQL 密码
- dbname 可选。规定默认使用的数据库
- port 可选。规定尝试连接到 MySQL 服务器的端口号
- socket 可选。规定 socket 或要使用的已命名 pipe
bool mysqli_close ( mysqli $link )
来断开与MySQL数据库的链接
- 只有一个参数为 mysqli_connect() 函数创建连接成功后返回的 MySQL 连接标识符
- 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier,则关闭上一个打开的连接
- 通常不需要使用 mysqli_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭
- 完整代码如下
<?php
$host = 'localhost:3306'; // mysql主机名或IP地址
$username = 'root'; // mysql用户名
$password = '123456'; // mysql密码
$dbname = 'mysql'; // 数据库
$connect = mysqli_connect($host, $username, $password, $dbname);
if (! $connect) {
die('Could not connect: ' . mysqli_error());
}
echo '数据库连接成功';
命令行创建、删除数据库
mysql -u root -p123456
create database test;
drop database test;
或
mysqladmin -u root -p create test
mysqladmin -u root -p drop test
使用PHP脚本创建数据库
mysqli_query(connection,query,resultmode);
PHP 使用 mysqli_query 函数来创建或者删除 MySQL 数据库;该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。
- connection 必需。规定要使用的 MySQL 连接
- query 必需,规定查询字符串
- resultmode 可选。一个常量。可以是下列值中的任意一个
- MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)
- MYSQLI_STORE_RESULT(默认)
使用PHP脚本删除数据库
- 删除数据库时要特别小心!
<?php
$host = 'localhost:3306'; // mysql主机名或IP地址
$username = 'root'; // mysql用户名
$password = '123456'; // mysql密码
$connect = mysqli_connect($host, $username, $password);
if (! $connect) {
die('Could not connect: ' . mysqli_error());
}
echo "数据库连接成功\n";
$sql_cre = 'create database test';
$retc = mysqli_query($connect, $sql_cre);
if (! $retc) {
echo '创建数据库失败: ' . mysqli_error($connect) . "\n";
}
else{
echo "数据库 test 创建成功\n";
}
$sql_dro = 'drop database test';
$retd = mysqli_query($connect, $sql_dro);
if (!$retd){
die('删除数据库失败: ' . mysqli_error($connect));
}
echo "数据库 test 删除成功\n";
mysqli_close($connect);
mysqli_select_db(connection,dbname);
- 选取数据库,函数在执行成功后返回 TRUE ,否则返回 FALSE 。
使用PHP脚本创建数据表
<?php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
echo '连接成功<br />';
$sql = "CREATE TABLE runoob_tbl( ".
"runoob_id INT NOT NULL AUTO_INCREMENT, ".
"runoob_title VARCHAR(100) NOT NULL, ".
"runoob_author VARCHAR(40) NOT NULL, ".
"submission_date DATE, ".
"PRIMARY KEY ( runoob_id ))ENGINE=InnoDB DEFAULT CHARSET=utf8; ";
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('数据表创建失败: ' . mysqli_error($conn));
}
echo "数据表创建成功\n";
mysqli_close($conn);
?>
使用PHP脚本删除数据表
<?php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
echo '连接成功<br />';
$sql = "DROP TABLE runoob_tbl";
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('数据表删除失败: ' . mysqli_error($conn));
}
echo "数据表删除成功\n";
mysqli_close($conn);
?>
使用PHP脚本插入数据
- 对于含有中文的数据插入,需要添加 mysqli_query($conn , “set names utf8”); 语句。
<?php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
echo '连接成功<br />';
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$runoob_title = '学习 Python';
$runoob_author = 'RUNOOB.COM';
$submission_date = '2016-03-06';
$sql = "INSERT INTO runoob_tbl ".
"(runoob_title,runoob_author, submission_date) ".
"VALUES ".
"('$runoob_title','$runoob_author','$submission_date')";
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法插入数据: ' . mysqli_error($conn));
}
echo "数据插入成功\n";
mysqli_close($conn);
?>
使用PHP脚本来获取数据
- 使用 mysqli_fetch_array MYSQLI_ASSOC 参数获取数据
<?php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT runoob_id, runoob_title,
runoob_author, submission_date
FROM runoob_tbl';
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>菜鸟教程 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC))
{
echo "<tr><td> {$row['runoob_id']}</td> ".
"<td>{$row['runoob_title']} </td> ".
"<td>{$row['runoob_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>
- 使用了 mysqli_fetch_assoc() 函数来输出数据表 runoob_tbl 的所有记录
while($row = mysqli_fetch_assoc($retval))
{
echo "<tr><td> {$row['runoob_id']}</td> ".
"<td>{$row['runoob_title']} </td> ".
"<td>{$row['runoob_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
- 也可以使用常量 MYSQLI_NUM 作为 PHP mysqli_fetch_array() 函数的第二个参数,返回数字数组
while($row = mysqli_fetch_array($retval, MYSQLI_NUM))
{
echo "<tr><td> {$row[0]}</td> ".
"<td>{$row[1]} </td> ".
"<td>{$row[2]} </td> ".
"<td>{$row[3]} </td> ".
"</tr>";
}
内存释放
<?php
// ...
echo '</table>';
// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);