PHP

PHP 知识量:7 - 20 - 67

7.2 操作数据库><

插入数据- 7.2.1 -

要使用php向数据库的表中插入数据可以使用mysqli_query()函数,它接受一个SQL字符串参数,然后执行该SQL字符串规定的操作。

假设数据库中有一个名为“person”的表,它的结构和数据内容如下所示:

idnameagesex
1jeff30male

下面使用php代码插入一条新的数据:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php
        //数据库服务器的URL地址
        $host = 'localhost';
        //数据库服务器用户名
        $username = 'james';
        //数据库服务器登录密码
        $passwd = '1a2b3c';
        //数据库名称
        $dbname = 'website';
        //建立数据库连接。
        $con = mysqli_connect($host, $username, $passwd, $dbname);
        //插入数据的SQL语句
        $sql = "insert into person (name,age,sex) values ('james',40,'male')";
        //执行数据库操作
        if (mysqli_query($con, $sql)) {
            echo '添加成功';
        } else {
            echo '添加失败';
        }
        //关闭数据库连接
        if (mysqli_close($con)) {
            echo '数据库已关闭';
        }
        ?>
    </body>
</html>

以上代码中,在建立数据库连接后,首先设置了变量$sql,它的内容为一条插入数据的SQL语句。然后调用mysqli_query()函数,它有两个参数,第一个是数据库连接资源变量$con,第二个是SQL语句变量$sql。mysqli_query()函数如果执行插入操作成功就返回“TRUE”,失败返回“FALSE”。操作成功后的表person变为:

idnameagesex
1jeff30male
2james40male
id列因为是自增的,所以不必在插入时明确指定。

删除数据- 7.2.2 -

删除数据同样可以使用mysqli_query()函数,只需要将传入的SQL语句修改为删除语句即可。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php
        //数据库服务器的URL地址
        $host = 'localhost';
        //数据库服务器用户名
        $username = 'james';
        //数据库服务器登录密码
        $passwd = '1a2b3c';
        //数据库名称
        $dbname = 'website';
        //建立数据库连接。
        $con = mysqli_connect($host, $username, $passwd, $dbname);
        //删除数据的SQL语句
        $sql = "delete from person where id=1";
        //执行数据库操作
        if (mysqli_query($con, $sql)) {
            echo '删除成功';
        } else {
            echo '删除失败';
        }
        //关闭数据库连接
        if (mysqli_close($con)) {
            echo '数据库已关闭';
        }
        ?>
    </body>
</html>

以上代码中,变量$sql的内容为一条删除数据的SQL语句,调用mysqli_query()函数后,对应的数据就会被删除。

修改数据- 7.2.3 -

修改数据同样可以使用mysqli_query()函数,只需要将传入的SQL语句修改为更新语句即可。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php
        //数据库服务器的URL地址
        $host = 'localhost';
        //数据库服务器用户名
        $username = 'james';
        //数据库服务器登录密码
        $passwd = '1a2b3c';
        //数据库名称
        $dbname = 'website';
        //建立数据库连接。
        $con = mysqli_connect($host, $username, $passwd, $dbname);
        //修改数据的SQL语句
        $sql = "update person set name='peter' where id=2";
        //执行数据库操作
        if (mysqli_query($con, $sql)) {
            echo '更新成功';
        } else {
            echo '更新失败';
        }
        //关闭数据库连接
        if (mysqli_close($con)) {
            echo '数据库已关闭';
        }
        ?>
    </body>
</html>

以上代码与插入、删除语句不同之处在于变量$sql的值变为了一条更新数据的SQL语句。

查询数据- 7.2.4 -

查询数据操作的代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>index</title>
    </head>
    <body>
        <?php
        //数据库服务器的URL地址
        $host = 'localhost';
        //数据库服务器用户名
        $username = 'james';
        //数据库服务器登录密码
        $passwd = '1a2b3c';
        //数据库名称
        $dbname = 'website';
        //建立数据库连接。
        $con = mysqli_connect($host, $username, $passwd, $dbname);
        //查询数据的SQL语句
        $sql = "select * from person";
        //执行数据库操作,获取结果集。
        $res = mysqli_query($con, $sql);
        //获取结果集中的数据条数
        $record = mysqli_num_rows($res);
        //如果查询到记录
        if ($record > 0) {
            //循环获取每条结果信息
            while ($row = mysqli_fetch_array($res)) {
                $id = $row['id'];
                $name = $row['name'];
                $age = $row['age'];
                $sex = $row['sex'];
                echo "id is $id,name is $name,age is $age,sex is $sex<br>";
            }
        }
        //关闭数据库连接
        if (mysqli_close($con)) {
            echo '数据库已关闭';
        }
        ?>
    </body>
</html>

与此前相同,先建立数据库连接,随后:

  1. 设置查询语句并赋值给变量$sql。

  2. 使用mysqli_query()函数,执行查询操作,并将查询结果资源(结果集)赋值给变量$res。

  3. 使用mysqli_num_rows()函数,获取查询到的信息条数,其参数为结果集变量$res。

  4. 如果查询到了1条以上的数据,则使用循环语句遍历结果集。其中mysqli_fetch_array()函数用于逐行获取结果信息,每行信息赋值给变量$row。mysqli_fetch_array()函数的参数为结果集变量$res。

  5. 通过变量$row,以获取数组元素值的方式访问每项数据,然后赋值给相应变量,并最终打印出来。