PHP学习笔记之MySQL(十)

编程接口

从PHP5开始,PHP向程序员提供了两种MySQL应用程序编程接口:一种是从PHP早期版本一 直就有的mysql功能模块;另一种是从PHP5才开始有的mysqli接口;

mysql功能模块不是PHP的一个集成组件。要想使用这个功能扩展模块,不管使用是哪一种操作系统,都必须在php.ini文件里启用这个扩展以确保PHP能够找到所有必要的DLL "php_mysqli"。

phpinfo()查看php.ini设置,包括路径

数据库操作一般步骤

  1. MySQL建立连接与选择要操作的数据库
  2. 进行增删改查操作
  3. 关闭连接

1.连接MySQL服务器

mysqli_connect("端口","用户名","密码","连接的数据库")或者 new mysqli方法连接数据库

如果连接成功,这个函数将返回一个对象.否则将返回false,并向web服务器发送一条出错消息,如果不想让最终用户在他们的web浏览器看到这样的出错消息,就必须在函数前面加上一个@字符.

设置获取数据库的数据编码格式 $conn->query('set names utf8'); mysqli_query($conn,'set names utf8');

2.执行SQL语句

$result = mysqli_query($conn,$sql);
%result = $conn ->query ($sql);

3.获取和显示数据

fetch_row()

将以一个普通数组的形式返回一条结果,它的各个字段需要以$row[n]的方式进行访问

fetch_array()

将以一个关联数组的形式返回一条结果,它的各个字段需要以$row[n]$row["colname"]的方式进行访问

fetch_assoc()

将以一个关联数组的形式返回一条结果记录,但它的各个字段只能以 $row["colname"]的方式进行访问。

fetch_object()

函数以一个对象的形式返回一条结果记录, 它的各个字段需要以$row->colname的方式进行访问

这四个函数的共同点是:每次调用将自动返回下一条结果记录,但如果已经到达结果数据表的末尾,则返回false;

mysqli_free_result(result)

提前释放某次查询结果

mysqli_num_rows($conn)

函数用于获取查询返回的记录数

mysqli_insert_id($conn)

用于获取INSERT操作产生的ID;

mysqli_affected_rows($conn)

函数用于获取前一次mysql操作所影响的记录数;

SELECT例子

<?php 
header("Content-Type: text/html;charset=utf-8");
//连接数据库
$con = mysqli_connect("localhost","root","","beautifulGirl");
//设置编码格式
$conn->query("set names utf8");
//设置sql操作查询ziliao表格中的所有数据
$sql = "SELECT * FROM ziliao";
//执行sql语句,将返回的数据存储于变量result中
$result = $con->query($sql);
//创建表格填写数据
echo '<table border=1>';
//以数组的方式返回数据
while($arr = $result->fech_assoc()){
    echo "<tr>
            <td>{$arr["id"]}</td>
            <td>{$arr["name"]}</td>
            <td>{$arr["age"]}</td>
          </tr>";
}
?>

INSERT例子

<?php 
    //连接数据库
    $conn = @mysqli_connect("localhost","root","","beautifulGirl");
    if(!$conn){
        die("连接失败")
    }
    //设置编码格式
    $conn->query(set names utf8);
    //设置sql语句添加一行name为"刘亦菲",age为"永远20岁"的数据
    $sql="INSERT INTO ziliao (name,age) VALUES ('刘亦菲','永远20岁')";
    //执行sql语句
    $conn->query($sql);
    //由操作改变的数据条目判断是否添加成功
    if(mysqli_affected_rows($conn)>0){
        echo "添加成功".myquli_insert_id($conn);
    }else{
        echo "添加失败";
    }
?>

UPDATE例子

<?php
    //连接数据库
    $conn = @mysqli_connect("localhost","root","","beautifulGirl")  
    if(!$conn){
        die("连接失败");
    }
    //设置编码格斯
    $conn->query("set names utf8");
    //设置SQL语句
    $sql = "UPDATE ziliao SET name = '小苍' WHERE age = '30'";
    //执行sql语句
    $conn->query($sql);
    //判断是否修改成功
    if(mysqli_affected_rows($conn)>0){
        //修改成功则输出改变的行数
        if(mysqli_affected_rows($conn)>0){
            echo "修改成功".mysqli_affected_rows($conn);
        }else{
            echo "修改失败";
        }
    }   
?>

DELETE 例子

$conn = @$mysqli_connect("localhost","root","","beautifulGirl");

$conn->query("set names utf8");
$sql = "UPDATE FROM zilao WHERE name = '小苍'";
$conn->query($sql);
if(mysqli_affected_rows($conn)>0){
    echo "删除成功".mysqli_affected_rows($conn);
}else{
    echo "删除失败";
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章