加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP操作MySQL(1)

发布时间:2020-12-13 21:26:36 所属栏目:PHP教程 来源:网络整理
导读:1. 前置知识点回顾 PHP工作原理: (1). PHP的代码传递给PHP包,?请求PHP进行解析并编译. (2).?服务器根据PHP代码的请求读取数据库. (3).?服务器与PHP包共同根据数据库中的数据和其他运行变量,?将PHP代码解析成普通的HTML代码. (4).?解析后的代码发送个浏览器,?

1. 前置知识点回顾

  PHP工作原理:

   (1). PHP的代码传递给PHP包,?请求PHP进行解析并编译.

   (2).?服务器根据PHP代码的请求读取数据库.

   (3).?服务器与PHP包共同根据数据库中的数据和其他运行变量,?将PHP代码解析成普通的HTML代码.

   (4).?解析后的代码发送个浏览器,?浏览器对代码进行分析获取可视化内容.

   (5).?用户通过浏览器浏览网站的内容.

?

2. PHP操作数据库的基本步骤(按顺序)

?

?

  (1).?建立连接: $connection = mysqli_connect(‘host‘,‘username‘,‘password‘,‘databases_name‘,port......);

  (2).?判断连接是否成功:?mysqli_connect_error()-----连接成功返回0,?失败返回1

  (3).?选择数据库:?mysqli_select_db($connection,‘another_database_name‘)

  (4).?设置字符集: mysql_set_charset($connection,‘utf8‘);

  (5).?书写SQL语句: $sql = "select * from db_name"; $result = mysqli_query($connection,$sql);.........

  (6).?执行SQL语句: mysqli_query();

  (7).?解析结果集: mysqli_fetch_array($result,resulttype::MYSQLI_ASSOC);

   ???其中: MYSQLI_ASSOC代表以关联数组编号,MYSQLI_NUM代表以索引数组编号

    mysqli_fetch_assoc(),mysqli_fetch_all();

  (8).?关闭连接: mysqli_close($connection);

  例如:

<?php
    //建立连接
    $connection = mysqli_connect(‘localhost‘,‘root‘,‘test‘,3306);
//    var_dump($connection);
//判断连接是否成功
    if( !mysqli_connect_error() ){
        echo ‘连接成功!‘.‘</br>‘;
    }else{
        die(mysqli_connect_error());
    }
    //(更换)选择数据库
    mysqli_select_db($connection,‘mrsoft‘);
    //设置字符集
    mysqli_set_charset($connection,‘utf8‘);
    //操作数据库
    $sql = "select * from `books`";
    $result = mysqli_query($connection,$sql);
    var_dump($result);
    $array = mysqli_fetch_array($result, MYSQLI_ASSOC);
    var_dump($array);
    //关闭连接
    mysqli_close($connection);
    //var_dump($connection);
?>

说明:?如果在多个网页中都要进行频繁的数据库访问,?则可以建立与数据库服务器的持续连接来提高效率.

  ? 持续连接的方法:?mysqli_pconnect()代替mysqli_connect(),?系统自动返回已经建立好的持续连接的ID号.

3.?添加,?更新,?删除数据

 

<?php
//连接数据库
$connect = mysqli_connect(‘localhost‘,3306);
//测试连接是否成功
if( mysqli_connect_error() ){
    die(‘连接失败,原因: ‘. mysqli_connect_error());
}
//连接成功
//选择数据库
mysqli_select_db($connect,‘test‘);
//设置字符集
mysqli_set_charset($connect,‘utf8‘);

//书写SQL语句
$sql_insert =‘INSERT INTO user1(username,age,sex,addr,married,salary) VALUES("周星星",28,"男","香港",9999999)‘;
$sql_update = ‘UPDATE user1 SET username="张三丰" WHERE id=5‘;
$sql_delete = ‘DELETE FROM user1 WHERE id=4‘;
//执行SQL语句
$result_insert = mysqli_query($connect,$sql_insert);
$result_update = mysqli_query($connect,$sql_update);
$result_delete = mysqli_query($connect,$sql_delete);
//解析SQL语句执行结果
if($result_insert){
    echo ‘执行成功!‘ . mysqli_affected_rows($connect) . ‘条数据,刚才插入的数据的ID是‘ . mysqli_insert_id($connect);
}else{
    echo ‘执行失败!‘;
}
if($result_update){
    echo ‘执行成功!‘ .‘更新了‘ .mysqli_affected_rows($connect) . ‘条数据.‘;
}else{
    echo ‘执行失败!‘;
}
if($result_delete){
    echo ‘执行成功! 成功删除了‘.mysqli_affected_rows($connect) . ‘条数据.‘;
}else{
    echo ‘执行失败!‘;
}
//关闭连接,释放资源.
mysqli_close($connect);
?>

?

4.?简单的查询与结果解析

<?php
//连接数据库
$link = mysqli_connect(‘localhost‘,‘root‘);
//测试连接是否成功
if( mysqli_connect_error()){
    die( ‘连接失败! 原因: ‘. mysqli_connect_error());
}
//连接成功
//选择数据库test
mysqli_select_db($link,‘test‘);
//设置字符集
mysqli_set_charset($link,‘utf8‘);
//书写SQL语句
$sql1 = ‘SELECT * FROM user1‘;
$sql2 = ‘SELECT * FROM user1 WHERE id<8‘;
//执行SQL语句
$result = mysqli_query($link,$sql2);
//解析结果
if($result){
//    echo ‘执行成功! ‘;
    echo ‘<pre>‘;
//    $data = mysqli_fetch_array($result,MYSQLI_ASSOC);
//    var_dump($data);
    while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
        var_dump($row);
    }
}else{
    echo ‘执行失败! ‘;
}
?>

结果:

array(8) {
  ["id"]=>
  string(1) "5"
  ["username"]=>
  string(9) "张三丰"
  ["age"]=>
  string(2) "38"
  ["sex"]=>
  string(3) "男"
  ["addr"]=>
  string(6) "上海"
  ["married"]=>
  string(1) "0"
  ["salary"]=>
  string(8) "15000.00"
  ["userDesc"]=>
  string(16) "user description"
}
array(8) {
  ["id"]=>
  string(1) "6"
  ["username"]=>
  string(9) "张子怡"
  ["age"]=>
  string(2) "39"
  ["sex"]=>
  string(3) "女"
  ["addr"]=>
  string(6) "北京"
  ["married"]=>
  string(1) "1"
  ["salary"]=>
  string(8) "85000.00"
  ["userDesc"]=>
  string(16) "user description"
}
array(8) {
  ["id"]=>
  string(1) "7"
  ["username"]=>
  string(6) "汪峰"
  ["age"]=>
  string(2) "42"
  ["sex"]=>
  string(3) "男"
  ["addr"]=>
  string(6) "深圳"
  ["married"]=>
  string(1) "1"
  ["salary"]=>
  string(8) "95000.00"
  ["userDesc"]=>
  string(16) "user description"
}

  

5.?复杂查询与结果解析

<?php
//连接数据库
$link = mysqli_connect(‘localhost‘,‘root‘);
//测试连接是否成功
if( mysqli_connect_error() ){
    die( ‘连接失败! 原因: ‘.mysqli_connect_error());
}
//连接成功
//选择数据库
mysqli_select_db($link,‘utf8‘);
//书写SQL语句
$sql = ‘SELECT * FROM user1 WHERE id<12 AND id>8‘;
//执行SQL语句
$result = mysqli_query($link,$sql);
//解析SQL语句执行结果
if($result) {
    echo ‘<pre>‘;
    echo ‘<table border="1px">‘;
    echo ‘<tr>‘;
    echo ‘<th>id</th>‘;
    echo ‘<th>username</th>‘;
    echo ‘<th>age</th>‘;
    echo ‘<th>sex</th>‘;
    echo ‘<th>addr</th>‘;
    echo ‘<th>married</th>‘;
    echo ‘<th>salary</th>‘;
    echo ‘<th>userdesc</th>‘;
    echo ‘</tr>‘;
    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
        echo ‘<tr>‘;
        echo "<td width=‘100px‘>{$row[‘id‘]}</td>";
        echo "<td width=‘100px‘>{$row[‘username‘]}</td>";
        echo "<td width=‘100px‘>{$row[‘age‘]}</td>";
        echo "<td width=‘100px‘>{$row[‘sex‘]}</td>";
        echo "<td width=‘100px‘>{$row[‘addr‘]}</td>";
        echo "<td width=‘100px‘>{$row[‘married‘]}</td>";
        echo "<td width=‘100px‘>{$row[‘salary‘]}</td>";
        echo "<td width=‘100px‘>{$row[‘userDesc‘]}</td>";
        echo ‘</tr>‘;
    }
    echo ‘</table>‘;
}
//关闭连接
mysqli_close($link);
?>

结果:

6.?程序错误排查

(1)可能的错误原因:

  SQL语句语法错误,?数据类型错误,?唯一索引列数据错误......

(2)程序错误排查:

  判断SQL语句的执行结果,?查看数据影响条数,?获取SQL语句执行的错误信息[?调用mysqli_error($link),mysqli_errorno($link) ]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读