链接数据库
在php5.3版本之后,想要连接数据库有两种方案,一种是通过mysqli
,另外外一种是通过pdo
。
本文主要说的是如果通过mysqli
面向对象的写法操作数据库。
在连接数据库之前,需要先通过变量存储好数据库的基本连接信息。
$servername = "localhost"; // 地址 $username = "root"; // 用户名 $password = ""; // 密码
实例化对象,并传入先关参数
$link = new mysqli($servername,$username,$password);
判断链接是否成功
// 检测连接是否成功 if($link->connect_error){ //如果没有错误,会返回一个NULL die("连接失败,错误:" . $link->connect_error); //打印错误信息 }
链接之后,断开连接关闭数据库
$link->close();
完整demo:
<?php // php 连接Mysql // 通过mysqli // 采用面向对象的写法来完成数据库的连接 // 设置基础数据库信息 $servername = "localhost"; $username = "root"; $password = ""; // 创建连接 $link= new mysqli($servername,$username,$password); // 检测连接是否成功 if($link->connect_error){ die("连接失败,错误:" . $link->connect_error); } // 否则连接成功 echo "连接成功!"; // 连接之后,还需要将连接关闭 $link->close(); ?>
通过mysqli创建数据库
通过mysqli创建数据库,首先我们需要保证数据库的成功连接。
$servername = "localhost"; $username = "root"; $password = ""; // 创建连接 $link= new mysqli($servername,$username,$password); //检测是否成功 if($link->connect_error){ die("连接失败,错误:" . $link->connect_error); }
接下来通过变量保存好sql语句。
// 设置sql语句 $sql = "create database stu_01 default character set = 'utf8' ";
检测数据库是否创建成功
// 发送sql语句 并且验证是否创建成功 if($link->query($sql) === TRUE){ echo "数据库创建成功."; }else { echo "数据库创建失败 ,错误信息为:" . $link->error; // 如果失败输出错误信息 }
断开连接,关闭数据库
// 关闭数据库 $conn->close();
添加数据库完整demo
<?php $servername = "localhost"; $username = "root"; $password = ""; // 创建连接 $link= new mysqli($servername,$username,$password); if($link->connect_error){ die("连接失败,错误:" . $link->connect_error); } // 设置sql语句 $sql = "create database stu_01 default character set = 'utf8' "; // 发送sql语句 并且验证是否创建成功 if($link->query($sql) === TRUE){ echo "数据库创建成功."; }else { echo "数据库创建失败 ,错误信息为:" . $link->error; // 如果失败输出错误信息 } // 关闭数据库 $conn->close(); ?>
通过mysqli 创建数据表
通过mysqli
创建数据表,首先我们先来完成基本的数据库连接操作,
需要注意的是,因为我们是在数据库中创建一个数据表,所以需要在额外的配置一下数据库的信息:
$servername = "localhost"; $username = "root"; $password = ""; $dbname = "stu_01"; // 要操作的数据库名 // 创建连接 $link= new mysqli($servername,$username,$password,$dbname); // 注意第四个参数 if($link->connect_error){ die("连接失败,错误:" . $link->connect_error); }
设定创建数据表的sql语句
create table stu_info( id int(6) unsigned auto_increment primary key, firstname varchar(30) not null, lastname varchar(30) not null, email varchar(50), reg_date timestamp ) /* NOT NULL - 每一行都必须含有值(不能为空),null 值是不允许的。 DEFAULT value - 设置默认值 UNSIGNED - 使用无符号数值类型,0 及正数 AUTO INCREMENT - 设置 MySQL 字段的值在新增记录时每次自动增长 1 PRIMARY KEY - 设置数据表中每条记录的唯一标识。
通常列的 PRIMARY KEY 设置为 ID 数值,与 AUTO_INCREMENT 一起使用。
注意:每个表都应该有一个主键(本列为 "id" 列),主键必须包含唯一的值。 */
通过mysqli向数据表中插入信息
首先,连接数据库
$servername = "localhost"; $username = "root"; $password = ""; $dbname = "stu_01"; // 创建连接 $conn = new mysqli($servername,$username,$password,$dbname); if($conn->connect_error){ die("连接失败,错误:" . $conn->connect_error); }
接下来设置sql语句:
// 设置插入数据的sql语句 $sql = "insert into stu_info(firstname,lastname,email) values('张三','张小三','zhangsan@qq.com')";
发送sql语句
// 发送sql 语句 if($conn->query($sql) === TRUE){ echo "新记录添加成功!"; }else { echo "新记录添加失败,错误信息:" . $conn->error; } // 关闭连接 $conn->close();
通过mysqli删除数据
<?php // 数据库连接基本信息 header("Content-type:text/html;Charset=utf8"); $servername = "localhost"; $username = "root"; $password = ""; $dbname = "stu_02"; $conn = new mysqli($servername,$username,$password,$dbname); mysqli_set_charset($conn,'utf8'); // 解决乱码问题 // 检查链接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 设置sql $sql = "delete from stu_info where lastname = '李小思';"; // 发送sql if($conn->query($sql) === TRUE) { echo "删除成功"; }else { echo "删除失败,错误信息为:" . $conn->connect_error; } $conn->close();
通过mysqli 更改数据
<?php // 数据库连接基本信息 header("Content-type:text/html;Charset=utf8"); $servername = "localhost"; $username = "root"; $password = ""; $dbname = "stu_02"; $conn = new mysqli($servername,$username,$password,$dbname); mysqli_set_charset($conn,'utf8'); // 解决乱码问题 // 检查链接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 设置sql语句 $sql = "update stu_info set firstname='张小三' where id = 3"; // 发送sql语句 if($conn->query($sql) === TRUE) { echo "修改成功"; }else { echo "修改失败,错误信息:" . $conn->connect_error; } // 关闭 $conn->close();
通过mysqli 查找数据
<?php // 1.登录mysql,选择数据库 $link = @new mysqli("localhost:3306","root","root","test1908"); if($link->connect_error){ echo $link->connect_error; } // 2.$link->query()向mysql发送命令 // 查 $q = "SELECT * FROM stu"; $res = $link->query($q); if($res){ // 每次执行只能解析一条数据 // 1.解析出了关联数组和索引数组的集合 // while($arr = $res->fetch_array()){ // print_r($arr); // echo "<br>"; // } // 2.解析出了索引数组 // while($arr = $res->fetch_row()){ // print_r($arr); // echo "<br>"; // } // 3.解析出了关联数组 √ while($arr = $res->fetch_assoc()){ print_r($arr); // echo json_encode($arr); echo $arr["sex"]; echo "<br>"; } // 4.解析出了对象 // while($obj = $res->fetch_object()){ // print_r($obj); // echo $obj->name; // echo "<br>"; // } // echo $arr["age"] }else{ echo "select no ok"; } // 断开mysql之间的连接 $link->close(); ?>