基于原生php的mysql数据库基本入门教程

kano个人技术博客 php教程 916 次浏览 没有评论

现在一般在项目开发的过程中使用原生php开发的机会比较少,大多数情况会使用某种php框架进行开发,如kano技术博客经常使用的ThinkPHP,风评很高的Laravel和Yii等,这些框架对于数据库的操作或多或少的进行了一些封装,使之变得更易书写和阅读。但是作为一名合格的开发者,使用原生的php操作数据库也是需要掌握的基础。

mysql数据库

原生php的数据库操作的可用API有的mysql和mysqli及PDO(PHP Data Object)三种,mysql扩展在php5.5版本被废弃,与php7.0版本移除,官方建议2012年之后不再使用mysql扩展,文本的例子中使用的是mysqli。

一、连接与关闭

使用mysqli_conn开启一个数据库连接,mysqli_close关闭一个数据库连接。

$con = mysqli_connect('localhost', 'my_user', 'aaCCab$bb$sss');
if ($con) {
    // do something
}
mysqli_close($con);

mysqli_connect的参数为:服务器、用户名、密码,成功的话返回一个连接标识,失败返回false。mysqli_close的参数为由mysqli_connect创建的连接标识。

二、执行sql语句

执行一条sql语句我们用mysqli_query,它接受两个参数:连接标识和要执行的sql语句。下面举几个使用它的例子。

1. 创建数据库和数据表

一般的项目开发中我们并不会用php来创建数据库和数据表,我们会用数据库管理工具创建它们(如Navicat for MYSQL, SQLyog等)。不过如果你做的是cms系统或者某些需要安装的系统的话,就会需要知道如何用php创建它们。

创建数据库

$sql = "CREATE DATABASE my_database";

if (mysqli_query($con, $sql)) {
    echo mysqli_error($con);
} else {
    echo '数据库my_database创建成功<br>';
}

创建数据库

创建数据表

mysqli_query($con, 'use my_database');
$sql2 = 'CREATE TABLE person (
        id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(30) NOT NULL,
        age SMALLINT
        )';
if (mysqli_query($con, $sql2)) {
    echo mysqli_error($con);
} else {
    echo '数据表person创建成功<br>';
}

创建数据表

创建数据表

打开数据库发现数据库和表都创建了出来。

可以看到上面的例子里kano个人博客用了一个mysqlI_error方法,它能够在语句执行发生错误时返回错误信息,参数为连接标识。

※ SQL语句的语法知识需要大家自己了解一下,这里就不讲解了。

2. 插入数据

同样还是使用mysqli_query函数。

$sql = 'insert into person values(id, "张三", 15)';
if (mysqli_query($con, $sql)) {
    echo '数据插入成功<br>';
} else {
    echo mysqli_error($con);
}

插入数据

插入数据

查看数据库,可以看到一条数据插入进来了。

三、查询与结果集处理

mysqli_query在成功执行select时会返回一个结果集,可以使用mysqli_num_rows读取结果集的条数,使用mysqli_fetch_assoc将结果集放入一个关联数组。
$sql = 'select * from person';
$res = mysqli_query($con, $sql);
if ($res) {
    echo '总共有' . mysqli_num_rows($res) . '条数据:<br>';

    while ($row = mysqli_fetch_assoc($res)) {
        echo "{$row['id']} -- {$row['name']} -- {$row['age']}<br>";
    }
} else {
    echo mysqli_error($con);
}

结果集

对于结果集的处理有很多函数,mysqli_fetch_assoc只是其中一个,作为用从结果集中以关联数组的形式取得一行。除此之外还有很多函数:

1. mysqli_fetch_all(res, type)  从结果集中取得所有行,第二个参数决定以关联数组或索引数组、或者二者兼有返回,默认以索引数组返回。

数据库

2. mysqli_fetch_array(res, type)  mysqli_fetch_all的返回一行版本,也可以指定返回的类型。

mysql数据库

3. mysqli_fetch_field(res)  从结果集中获取下一字段信息,以对象形式返回

mysql数据库

4. mysqli_fetch_fields(res)  获取所有字段信息,以对象数组返回。

mysql数据库

以上就是kano个人博客今天为大家带来的原生php对于mysql的基本操作,虽然平时很少会用到,但它们正是框架中那些模块化的查询的基础。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go