MySQL 之PHP实现 数据库&数据表的创建删除、数据的插入&查询


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);

猜你喜欢

转载自blog.csdn.net/shu_ze/article/details/80501241