zoukankan      html  css  js  c++  java
  • PHP+MySQL数据库编程的步骤

      第一步:PHP连接MySQL服务器

      第二步:选择当前要操作的数据库

      第三步:设置请求或返回的数据的字符集

      第四步:执行各种SQL语句。

    一.PHP连接MySQL服务器

     PHP连接Mysql的方法有很多(也是php不断更新带来的后果),我就列下以下几种连接方法:


    1、使用 mysql ,提示:此种方法官方不建议才,官方提示:will be removed。

    $con = mysql_connect("localhost","root",""); 
    if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
    mysql_close($con);

    2、使用 mysqli(分过程式与对象式两种)Success... localhost via TCP/IP  :

    $link = mysqli_connect('localhost', 'root', '', '007online');
    
    if (!$link) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
    . mysqli_connect_error());
    }
    
    echo 'Success... ' . mysqli_get_host_info($link) . "
    ";
    
    mysqli_close($link);

    3、使用PDO 可以用

    $db = new PDO('mysql:host=localhost;dbname=007online', 'root', ''); 
    try { 
    foreach ($db->query('select * from 007_class_news') as $row){ 
    print_r($row); 
    } 
    $db = null; //关闭数据库 
    } catch (PDOException $e) { 
    echo $e->getMessage(); 
    }

    4、其他(使用 ADODB 等) ,

    详细操作传送门:http://blog.csdn.net/zimin1985/article/details/18732505
    require_once 'adodb.inc.php'; 
    $conn = &ADONewConnection('mysql'); 
    $conn->connect('localhost','root','','007online'); 
    $conn->Execute("set names utf8"); 
    $res = $conn->Execute("select * from 007_class_news"); 
    if (!$res){ 
    echo $conn->ErrorMsg(); 
    }else{ 
    var_dump($res); 
    }

    二.常用词语(以下用mysqli_xxx)

        

    PHP连接MySQL服务器

    1.mysqli_connect() 定义和用法:

    函数打开一个到 MySQL 服务器的新的连接。


    语法

                                                                 mysqli_connect(host,username,password,dbname,port,socket);   
                                                    
    $link = mysqli_connect('localhost', 'root', '', '007online');
     
    if (!$link) {
        die('Connect Error (' . mysqli_connect_errno() . ') '
                . mysqli_connect_error());
    }
     
    echo 'Success... ' . mysqli_get_host_info($link) . "
    ";
     
    mysqli_close($link);
    参数描述
    host 可选。规定主机名或 IP 地址。
    username 可选。规定 MySQL 用户名。
    password 可选。规定 MySQL 密码。
    dbname 可选。规定默认使用的数据库。
    port 可选。规定尝试连接到 MySQL 服务器的端口号。
    socket 可选。规定 socket 或要使用的已命名 pipe。

    技术细节

    返回值: 返回一个代表到 MySQL 服务器的连接的对象。
    PHP 版本: 5+

    2exit()

    l  描述:输出一个提示信息,并中止脚本继续向下运行。

    l  语法:void exit([$msg])

    l  参数:$msg是可选项。如果省略,只中止脚本运行。

    l  举例:exit(“PHP连接出错了”)

    3、 mysqli_connect_errno() 

    l  描述:返回上一次MySQL执行失败时的文本错误信息。

    l  语法: mysqli_connect_errno()

    4、屏蔽系统错误@

           描述:@可以屏蔽各种函数调用错误,或包含文件错误,但是不能用在函数定义或类定义之前。

            例子:@mysqli_connect() 

    选择MySQL数据库

    1.mysqli_select_db() 函数用于更改连接的默认数据库。

        

    $conn=null;
        function query($sql){
            //empty 判断一个变量的值是否为空 
            global $conn;
            $conn=mysqli_connect('localhost','root','');//连接数据库服务器
            mysqli_select_db($conn,'testcharset');//选中要操作的数据库
            //mysqli_query($conn,'set names utf8');//设定编码格式
            $result=mysqli_query($conn,$sql);//执行一个sql语句
            return $result;    
        }

       语法:mysqli_select_db(connection,dbname);  

    参数描述
    connection 必需。规定要使用的 MySQL 连接。
    dbname 必需,规定要使用的默认数据库。
    返回值: 如果成功则返回 TRUE,如果失败则返回 FALSE。
    PHP 版本: 5+

    设置MySQL返回的数据字符集

    1.mysqli_query($conn,$sql);//执行一个SQL语句

      

     描述:发送一条 MySQL 查询。

        语法:resource

    mysqli_query( string $query [, resource $link = NULL ] )

    l  参数:

      $query:指要发送的SQL语句。

      增加记录:$query = “INSERT INTO news(title,content) VALUES(‘标题’ , ‘内容’)”

       删除记录:$query = “DELETE FROM news WHERE id=10”

      修改记录:$query = “UPDATE news SET title = ‘新标题’ , content = ‘新内容’ WHERE id=80”

      查询记录:$query = “SELECT * FROM news WHERE id<100”

      $link:可选项。指上一次打开的活动连接。

    l  返回值

      如果执行SELECT、SHOW、DESCRIBE命令,成功时返回结果集,失败时返回FALSE。

      结果集也是一个资源标识符,是到MySQL数据的一个引用地址。

      如果执行其它的SQL语句,执行成功返回TRUE,执行失败返回FALSE。

    l  举例:

      $result = mysqli_query(“SELECT * FROM news WHERE id<100”)

      $result = mysqil_query(“DELETE FROM news WHERE id=100”)

    从结果集中取出一行数据

    1mysqli_fetch_row()

      描述:从结果集中取得一行作为枚举数组。

      语法:array mysql_fetch_row ( resource $result )

      参数:$result是结果集变量。

      返回值:返回一个枚举数组,也就是从0开始的正整数下标。这里的下标,是与表的字段下标是对应。

      举例:$arr = mysqli_fetch_row($result)

     输出类似:

    Array
    (
    [0] => Adams
    [1] => John
    [2] => London
    )

    2mysqli_fetch_array()

       描述:从结果集中取出一行,作为混合数组返回。

      语法:array mysqli_fetch_array ( resource $result [, int $ result_type ] )

      参数:

      $result:是指结果集变量。

      $result_type:是指返回的数组的类型。取值:MYSQL_BOTH、MYSQL_ASSOC、MYSQL_NUM

      MYSQL_BOTH:默认的。也就是两种下标都存在。

      MYSQL_ASSOC:只有字符下标的数组。相当于mysql_fetch_assoc()的功能。

      MYSQL_NUM:只有整数下标的数组。相当于mysql_fetch_row()的功能。

      以上三个参数是常量,系统常量必须全大写。

      返回值:返回一个数组,至于是什么数组,取决于第二个参数。

      举例:

      $arr = mysql_fetch_array($result)  //混合数组

      $arr = mysql_fetch_array($result , MYSQL_ASSOC )  //关联数组

      $arr = mysql_fetch_array($result , MYSQL_NUM)   //枚举数组

    输出类似:

    Array
    (
    [0] => Adams
    [LastName] => Adams
    [1] => John
    [FirstName] => John
    [2] => London
    [City] => London
    ) 
    <?php 
    // 假定数据库用户名:root,密码:123456,数据库:RUNOOB 
    $con=mysqli_connect("localhost","root","123456","RUNOOB"); 
    if (mysqli_connect_errno($con)) 
    { 
        echo "连接 MySQL 失败: " . mysqli_connect_error(); 
    } 
     
    $sql="SELECT name,url FROM websites ORDER BY alexa";
    $result=mysqli_query($con,$sql);
     
    // 数字数组
    $row=mysqli_fetch_array($result,MYSQLI_NUM);
    printf ("%s : %s",$row[0],$row[1]);
     
    // 关联数组
    $row=mysqli_fetch_array($result,MYSQLI_ASSOC);
    printf ("%s : %s",$row["name"],$row["url"]);
     
    // 释放结果集
    mysqli_free_result($result);
     
    mysqli_close($con);
    ?>

    3mysqli_fetch_assoc()

      描述:从结果集中取一行,以关联数组返回。

      语法:array mysqli_fetch_assoc(resource $result)

      举例:$arr = mysqli_fetch_assoc($result)

      输出类似:

      

    Array
    (
    [LastName] => Adams
    [FirstName] => John
    [City] => London
    ) 

     增删查改的例子:

    <?php
    
     //连接查询
    
    $conn=null;
        function query($sql){
            //empty 判断一个变量的值是否为空 
            global $conn;
            $conn=mysqli_connect('localhost','root','');//连接数据库服务器
            mysqli_select_db($conn,'007online');//选中要操作的数据库
            mysqli_query($conn,'set names utf8');//设置指定编码格式
            $result=mysqli_query($conn,$sql);//执行一个SQL语句
            return $result;    
        }
        
        /*
        *执行SQL查询数据
        *@param[参数] $sql  执行查询的SQL语句
        *@param[参数] $isnum 是否返回数字键的数组  如果为true返回数字键数组//否则返回false
        *@return[返回] array 查询的结果数组 如果返回false查询失败
        */
        function select($sql,$isnum=false){
            $result=query($sql);
            if($result){
                $resultArray=array();
                if($isnum){
                    while($arr=mysqli_fetch_row($result)){ //mysqli_fetch_row 的意思是:从结果集中取出一行数据
                        array_push($resultArray,$arr);
                    }
                }else{
                    while($arr=mysqli_fetch_assoc($result)){
                        array_push($resultArray,$arr);
                    }
                }
                return $resultArray;            
            }else{
                return false;
            }
        }
        
        //验证
        // $arr=select('select * from 007_class_news');
        // print_r($arr);
    // -----------------------------------------------------------------------------------------------------------------------------------------------
    
     
    
    // //连接插入
    
    $conn=null;
        function query($sql){
            //empty 判断一个变量的值是否为空 
            global $conn;
            $conn=mysqli_connect('localhost','root','');//连接数据库服务器
            mysqli_select_db($conn,'testcharset');//选中要操作的数据库
            mysqli_query($conn,'set names utf8');
            $result=mysqli_query($conn,$sql);
            return $result;    
        }
        
        /*
        *执行SQL插入数据
        *@param[参数] $sql  执行插入的SQL语句
        *@param[参数] return boolean||int  如果执行失败 返回false,如果插入成功 返回插入的ID
        */
        function insert($sql){
            global $conn;//声明为全局
            $result=query($sql);
            if($result){
                return mysqli_insert_id($conn); //如果插入成功,返回ID
            }
            else{
                return false;
            }
        }
        // $sql='insert into admin (`id`,`username`,`password`,`gender`,`age`) values ("","xkc","xkc",1,15)';
        //验证
        //一定要注意MySQL的单引号和双引号的区别,牢记,妹的坑了我一天时间不出结果……
        $sql='INSERT INTO news(`title`, `author`, `source`, `hits`, `is_ppt`, `content`, `addate`) VALUES ("啦啦","unusual米","乱编等等七塘",3000,0,"content",300)';
    
        $arr=insert($sql); //这里实际上是我在写的insert函数返回的一个判断,(如果执行成功则返回插入成功行的ID ,否则返回false)
        print_r($arr);
    
    // -----------------------------------------------------------------------------------------------------------------------------------------------------
    
     
    
    // //连接删除
    
     
    
        $conn=null;
        function query($sql){
            //empty 判断一个变量的值是否为空 
            global $conn;
            $conn=mysqli_connect('localhost','root','');//连接数据库服务器
            mysqli_select_db($conn,'testcharset');//选中要操作的数据库
            //mysqli_query($conn,'set names utf8');
            $result=mysqli_query($conn,$sql);
            return $result;    
        }
        
    //     /*
    //     *执行SQL删除数据
    //     *@param[参数] $sql  执行删除的SQL语句
    //     *@param[参数] return boolean||int  如果执行失败 返回false,如果删除成功 返回删除了几条数据(即受影响的行数)
    //     */
        function del($sql){
            global $conn;//声明为全局
            $result=query($sql);
            if($result){
                return mysqli_affected_rows($conn); //如果执行成功,返回改变了多少行(返回受影响的行数)
            }
            else{
                return false;
            }
        }
        
        $sql='delete from news where id=2';
        $arr=del($sql);//del返回受影响的行数
        print_r($arr);
    
     
    
    // // ------------------------------------------------------------------------------------------------------------------------------------------
    
     
    
    // 连接更改
    
     
    
    $conn=null;
        function query($sql){
            //empty 判断一个变量的值是否为空 
            global $conn;
            $conn=mysqli_connect('localhost','root','');//连接数据库服务器
            mysqli_select_db($conn,'testcharset');//选中要操作的数据库
            //mysqli_query($conn,'set names utf8');
            $result=mysqli_query($conn,$sql);//
            return $result;    
        }
        
        /*
        *执行SQL修改数据
        *@param[参数] $sql  执行修改的SQL语句
        *@param[参数] return boolean||int  如果执行失败 返回false,如果修改成功 返回修改了几条数据(即受影响的行数)
        */
        function update($sql){
            global $conn;//声明为全局
            $result=query($sql);
            if($result){
                return mysqli_affected_rows($conn); //如果执行成功,返回受影响的行数
            }
            else{
                return false;
            }
        }
        
        $sql='update news set hits ="2333" where id<=5';
        $arr=update($sql);//del返回受影响的行数
        print_r($arr);
     ?>

    PHP函数补充

    1include语法结构

    l  描述:包含并运行指定文件。

    l  语法:include $filename  或者  include($filename)

    l  举例:include “include/conn.php”

    2require语法结构

    l  描述:包含并运行指定文件。

    l  语法:require $filename  或者  require($filename)

    l  举例:require “include/conn.php”

    注意:include和require都是包含并运行文件,但是,是有区别的。

          如果包含的文件不存在,include将报一个警告错误,脚本继续向下运行。

          而require将报致命错误,脚本将立即终止执行。

    3header()

    l  描述:发送一个自定义的http报文,换句话说:PHP返回的数据的格式或字符集。

    l  语法:void header ( string $string)

    l  举例:

    u  header(“content-type:text/html;charset=utf-8”)  //设置PHP返回数据的字符集

    u  header(“location:http:www.sina.com.cn”);      //网页跳转

    u  JS中的跳转:location.href = “http://www.sina.com.cn”

    u  HTML跳转:<meta http-equiv = “refresh” content = “2;url = http://www.sina.com.cn”>

    URL统一资源定位器。

    http://www.sina.com.cn/index.php?username=yao&userpwd=123456#top

    ?之前是文件名称。?之后为查询字符串。

    查询字符串:?username=yao&userpwd=123456   //location.search

    查询字符串之后,就是锚点名称。如:#top

    urlencode()

    描述:编码 URL 字符串

    语法:string urlencode ( string $str )

    说明:返回字符串,此字符串中除了 -_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。

    举例:urlencode(“第32期”)  =  %E7%AC%AC32%E6%9C%9F

    urldecode()

    描述:解码已编码的 URL 字符串

    语法:string urldecode ( string $str )

  • 相关阅读:
    500. 键盘行
    657. 判断路线成圈
    771. 宝石与石头
    461. 汉明距离
    Java 基本数据类型
    Windows下的DOM操作
    jQuery学习笔记
    Java(16-19)
    Java(1-15)
    总结
  • 原文地址:https://www.cnblogs.com/mrszhou/p/7275121.html
Copyright © 2011-2022 走看看