PHP MySQL 基本操作 & Navicat for MySQL

接下来是MySQL部分的内容,本来早就可以总结了的,但是一直没有空,现在都快忘了,不过也算是重新啊复习复习了。这部分的内容主要是PHP与数据库MySQL间的数据交互,所以要对数据库的相关知识要有一定了解才能更容易理解,当然这里的例子都是非常简单的,但虽然简单,如果对数据库的知识不了解,我还是建议先学习学习数据库的知识再回头学这个,会更简单。
当然还有最重要的一点是你电脑要安装有可运行的MySQL数据库。

1、连接MySQL数据库
注:我用的PHP是7.1.9,PHP 5.3以下的版本是没有mysqli()函数,用的是mysql()函数

<?php 
    // $conn = mysqli_connect("localhost", "root", "123", "mmorpg"); // 连接方式可用

    $servername = "localhost:3306";
    $username = "root";
    $password = "";
    // 连接MySQL数据库
    // 参数1 要连接的服务器地址,端口号也要正确(但默认端口号3306,默认端口号可不写)
    // 参数2 使用登陆名 默认“root”
    // 参数3 登陆密码 默认“”
    // 参数4 要连接的数据库名称(可选)

    // 上面的参数都要按照自己电脑实际的数据来写。
    $mysqli = new mysqli($servername, $username, $password);

    if ($mysqli->connect_error) {
        die("Connected failed:" . $mysqli->connect_error);
    } else {
        echo "数据库连接成功!";
    }
?>

2、创建数据库
这里假设上面连接部分的代码在单独的一个PHP文件中,如:conn.php 则

<?php 
    // 路径需填写正确
    require 'conn.php';

    // 创建数据库
    $sql = "CREATE DATABASE mmorpg";
    if ($mysqli->query($sql) === TRUE) {
        echo "数据库创建成功";
    } else {
        echo "Error creating database: " . $mysqli->error;
    }

    // 关闭数据库连接
    $mysqli->close();
 ?>

到这里,我们假设数据库已经存在了,我们可以把链接部分的放到一个文件里,方便后面在任何地方的调用。
创建app_config.php,内容如下:(这个可以当作你项目的配置文件,虽然现在看起来才这点内容,单独放一个文件没必要,但当你的项目慢慢变的复杂时,这样做就很方便了)

<?php 
    // 定义常量,常量名一般用大写,你可以在你项目的任何地方调用常量
    define("SERVERNAME", "localhost");
    define("USERNAME", "root");
    define("PASSWORD", "");
    define("DATABASENAME", "mmorpg");
    // 定义常量
 ?>

然后可以创建:conn.php

<?php 
    // 将配置文件引入
    require 'app_config.php';

    $mysqli = new mysqli(SERVERNAME, USERNAME, PASSWORD, DATABASENAME);
    if ($mysqli->connect_error) {
        die("Connected failed:" . $mysqli->connect_error);
    } else {
        echo "数据库" . DATABASENAME . "连接成功!";
    }

    // 设置编码,防止中文乱码
    mysqli_set_charset($mysqli, "utf8");
 ?>

这样,相连接数据库的时候,直接 require ‘conn.php’(引入路径必须正确)就可以直接用 $mysqli 操作数据库了,

3、创建表

<?php 
    require 'conn.php';
    // 判断表示否存在,存在则删除
    $sql_drop_tb = "DROP TABLE IF EXISTS test";
    // 建表语句
    $sql_create_tb = "create table test (
        id int primary key, 
        name varchar(255) character set utf8
    )ENGINE=MyISAM DEFAULT CHARSET=utf8;";

    if (!$mysqli->query($sql_drop_tb) || !$mysqli->query($sql_create_tb)) { // 新建表
        echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
    } else {
        echo "Table creation success!<br>";
    }

    $mysqli -> close();
 ?>

4、插入数据

<?php 
    require 'conn.php';

    // 定义函数
    function Insert($mysqli, $id, $name)
    {
        # 使用预处理语句
        $sql = "insert into test(id, name) values (?,?)";

        $stmt = mysqli_stmt_init($mysqli);
        // 预处理语句
        if (mysqli_stmt_prepare($stmt, $sql)) {
            // 绑定参数
            // 参数二:i 表示整数 s 表示字符串 d 表示双精度浮点数 b 表示布尔数, 对应插入字段的类型和个数
            mysqli_stmt_bind_param($stmt, 'is', $id, $name);

            // 执行插入
            if(mysqli_stmt_execute($stmt)) {
                echo "数据插入成功!". $mysqli -> affected_rows . "行受影响.";
            } else {
                echo "数据插入失败!" . $mysqli -> error;
            }
        }

        $stmt -> close();
    }
    // 调用函数
    Insert($mysqli, 7, "洋葱");

    # 插入多条数据
    $sql = "insert into test(id, name) values (1, '张三');";
    $sql .= "insert into test(id, name) values (2, 'Tom');";
    $sql .= "insert into test(id, name) values (3, '李四')"  

    if ($mysqli -> multi_query($sql) === TRUE) {
        echo "<br>新纪录插入成功!";
    } else {
        echo "Error:" . $sql . "<br>" . $mysqli -> error;
    }
?>

5、选择显示数据

<?php 
    require 'conn.php';

    // $sql = "select id, name from test";
    // $sql = "select id, name from test where id < 4";
    $sql = "select id, name from test order by id DESC"; // DESC 根据id降序排序 ASC 根据id升序排序

    $result = $mysqli -> query($sql);
    echo "<br>";
    if ($result -> num_rows > 0) {
        // 输出数据
        while ($row = $result -> fetch_assoc()) {
            // print_r($row);
            echo "ID:" . $row['id'] . " - Name:" . $row['name'] . "<br>";
        }
    } else {
        echo "0 结果";
    }

    $mysqli -> close();
 ?>

6、更新数据

<?php 
    require 'conn.php';

    $sql = "update test set name = '全蛋' where id = 4";

    $mysqli -> query($sql);
    if ($mysqli -> affected_rows) {
        echo "更新成功!" . $mysqli -> affected_rows . " 行受影响";
    } else {
        echo "更新失败!" . $mysqli -> affected_rows . " 行受影响";
    }

    $mysqli -> close();
 ?>

7、删除数据

<?php 
    require 'conn.php';

    $sql = "delete from test where name = '全蛋'";

    $mysqli -> query($sql);
    if ($mysqli -> affected_rows) {
        echo "删除成功!" . $mysqli -> affected_rows . " 行受影响";
    } else {
        echo "删除失败!" . $mysqli -> affected_rows . " 行受影响";
    }

    $mysqli -> close();
 ?>

这些其实都是很基础的,能不能用的好,还要看你对数据库是否熟悉,和你的封装技术,怎么把这些东西封装成一个更方便的使用的函数。
对于MySQL,这里没有多余的介绍,但如果你还是用小黑窗口进行相关操作的话,这里倒是有一个MySQL界面化的工具推荐。中文,内含密钥可直接破解。(不过能坚持用小黑窗口也挺牛的!)
http://download.csdn.net/download/liangshilin/10014539
建立与MySQL Server的连接
这里写图片描述
功能很全
这里写图片描述

猜你喜欢

转载自blog.csdn.net/liangshilin/article/details/78396692