PHP学习笔记4-php的MYSQL数据库访问

04-PHP的MYSQL数据库访问

1. PHPMYSQL支持配置

2. PHPMYSQL的连接

3. PHP库的创建
4. PHP表的创建

5. PHP数据插入、删除、更新6. PHP数据查询
7. PHP数据库连接封装

一:PHP MYSQL 支持配置

1、检测PHP 数据库支持

<?php
$conn= mysqli_connect("127.0.0.1:3306","root","");

//mysql端口如果没有修改,可以不指定端口
//$conn = mysqli_connect("127.0.0.1","root","");echo"<pre>";
print_r(
$conn);
echo"</pre>";

PHP学习笔记4-php的MYSQL数据库访问

通过修改php.ini 文件 添加数据库连接支持

PHP学习笔记4-php的MYSQL数据库访问PHP学习笔记4-php的MYSQL数据库访问

二:PHP MYSQL 的连接
1、在PHP 连接数据库时 可以使用mysql_connect()函数 ,也可以使用mysqli_connect()函数;

2、mysql_connect()是PHP5版本之前使用的,该方法每次连接数据库都会创建一个新的连接,且该方法不支持MYSQL 的高级函数;

3、mysqli_connect()使用连接缓存技术,第一连接是会创建新的mysql连接,后面同级连接将使用上次建立的连接,不会再创建一个新的连接;

4、mysqli_connect()因使用连接缓存技术,所以相对效率较高,且支持mysql的高级用法;

<?php

//未修改mysql软件端口时 可以不写端口$servername="127.0.0.1";$username="root";
$password="";

//创建连接
$conn= mysqli_connect($servername,$username,$password);

//检测连接if(!$conn) {

//php中对于错误处理使用die(msg)函数
//该函数执行完成后 会直接 退出当前脚本,后续代码不会继续运行//mysqli_connect_error()PHP数据库连接时的错误信息获取函数die("连接失败: ". mysqli_connect_error());

}
echo"连接成功";

三:PHP MYSQL 库的创建
1、mysqli_close($conn); 用于关闭数据库连接,参数 $conn 是数据库连接参数

<?php
$servername="127.0.0.1";$username="root";$password="";

$conn= mysqli_connect($servername,$username,$password);if(!$conn) {

die("连接失败: ". mysqli_connect_error());}

//创建数据库
$sql="create database student";

//mysqli_query($conn, $sql)为数据库的操作方法
//第一个参数为数据库连接对象
//第二参数用于指定sql语句
//该方法有返回值 返回类型为boolean true表示返回成功false表示失败$falg= mysqli_query($conn,$sql);

if($falg) {
echo"数据库创建成功";

} else{
//mysqli_error(connection)函数返回最近调用函数的最后一个错误描述。//需要当前 数据库连接的对象做为参数

echo"创建数据库成功: ". mysqli_error($conn);}

//数据库访问完成后,因及时关闭连接mysqli_close($conn);

四:PHP MYSQL 表的创建

1、在mysql数据库中创建表,需要首先选择库。

<?php
$servername="127.0.0.1";$username="root";$password="";

$conn= mysqli_connect($servername,$username,$password);if(!$conn) {

die("连接失败: ". mysqli_connect_error());}

$sql="use student;";
$falg1= mysqli_query($conn,$sql);if($falg1){

//使用sql创建数据表
$sql= "create table student (

id int auto_increment primary key,name varchar(30),
nikename varchar(30)

);";
if(mysqli_query($conn,$sql)) {

echo"数据表student创建成功";}else{

echo"创建数据表错误: ". mysqli_error($conn);}

}else{
echo"切换数据库失败: ". mysqli_error($conn);

}mysqli_close($conn);

2、在mysqli_connect() 方法中提供第四个参数,该参数可以设置库名

<?php
$servername="127.0.0.1";$username="root";$password="";
$dbname= "student";

$conn= mysqli_connect($servername,$username,$password,$dbname);if(!$conn) {

die("连接失败: ". mysqli_connect_error());}

$sql= "create table student2 (
id int auto_increment primary key,name varchar(30),
nikename varchar(30)

);";
if(mysqli_query($conn,$sql)) {

echo"数据表student2创建成功";}else{

echo"创建数据表错误: ". mysqli_error($conn);}

mysqli_close($conn);

五:PHP MYSQL 数据的插入、删除和更新

1、数据插入

<?php
$servername="127.0.0.1";$username="root";$password="";
$dbname= "student";

//创建连接
$conn= mysqli_connect($servername,$username,$password,$dbname);//检测连接
if(!$conn) {

die("Connection failed: ". mysqli_connect_error());}

$sql= "insert into student(name, nikeName)

values
(
'John','Doe')";

if(mysqli_query($conn,$sql)) {echo"新记录插入成功";

} else{

echo"数据插入失败,执行sql: ". $sql."<br>". mysqli_error($conn);}

mysqli_close($conn);

2、数据删除

<?php
$servername="127.0.0.1";$username="root";$password="";
$dbname= "student";

//创建连接
$conn= mysqli_connect($servername,$username,$password,$dbname);//检测连接
if(!$conn) {

die("Connection failed: ". mysqli_connect_error());}

$id= 2;
$sql= "delete from student where id = $id";

if(mysqli_query($conn,$sql)) {echo"数据删除成功";

} else{
echo"数据删除失败,执行sql: ". $sql."<br>". mysqli_error($conn);

}mysqli_close($conn);

3、数据更新

<?php
$servername="127.0.0.1";$username="root";$password="";
$dbname= "student";

//创建连接
$conn= mysqli_connect($servername,$username,$password,$dbname);//检测连接
if(!$conn) {

die("Connection failed: ". mysqli_connect_error());}

$nikeName="哈哈";
$id= 1;
$sql= "update student set nikeName = '$nikeName' where id = $id";

if(mysqli_query($conn,$sql)) {echo"数据更新成功";

} else{
echo"数据更新失败,执行sql: ". $sql."<br>". mysqli_error($conn);

}mysqli_close($conn);

六:PHP MYSQL 数据查询

<?php
$servername= "127.0.0.1";$username= "root";$password= "";
$dbname= "student";

//创建连接
$conn= mysqli_connect($servername,$username,$password,$dbname);//检测连接
if(!$conn) {

die("数据库连接失败: " . mysqli_connect_error());}

$sql= "select id,name,nikeName from student1";$result= mysqli_query($conn,$sql);

echo"<pre>";print_r($result);echo"</pre>";

// $result为对象 在该对象中 存在属性num_rows为当前查询结果的返回值if($result->num_rows>0){

//mysqli_fetch_array()方法将查询的结果以行的形式进行循环返回,
//返回的结果为一个数组,可以通过指定返回类型选择返回索引数组还是关联数组
// MYSQLI_ASSOC返回关联数组MYSQLI_NUM返回索引数组MYSQLI_BOTH返回两者//当行循环过程中没有更多的行 返回null

while($row= mysqli_fetch_array($result)){echo$row['id'] . " ". $row['name'];echo"<br />";

}}else{

echo"查无数据";}

//释放结果集mysqli_free_result($result);mysqli_close($conn);

七:PHP MYSQL 连接面向过程的简单封装

1、简单工具脚本

<?php
define(
"HOST","127.0.0.1");define("USERNAME","root");define("PASSWORD","");define("DBNAME","stutest");define("MYSQL_CHARSET","utf8");

$conn= mysqli_connect("127.0.0.1","root","","stutest");

if(!$conn) {
die("数据库连接失败: ". mysqli_connect_error());

}

//设置数据库返回值 和php脚本一致mysqli_query($conn,"set names '".MYSQL_CHARSET."'");

2、调用工具脚本

<?php

//通过includerequire语句,可以将PHP文件的内容插入另一个PHP文件//该操作是在服务其执行之前进行

//如果指定文件丢失
//使用include只生成警告(E_WARNING),并且脚本会继续//include "util/dbUtil.php";

//使用require会生成致命错误(E_COMPILE_ERROR)并停止脚本require"util/dbUtil.php";
echo"string";

$sql= "select * from dept";

$result= mysqli_query($conn,$sql);

if($result->num_rows>0){
while($row= mysqli_fetch_array($result,MYSQLI_BOTH)) {

echo"<pre>";print_r($row);echo"</pre>";

}}else{

echo"查无数据";}