包子

木森技术分享

路漫漫其修远兮,吾将上下而求索。

您现在的位置是:网站首页 > MYSQL

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

2022-04-18 20:29:45600

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