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.ini 文件 添加数据库连接支持
二: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
//通过include或require语句,可以将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"查无数据";}