zoukankan      html  css  js  c++  java
  • php连接MySQL分析

    Mysql:在PHP脚本中操作MySQL数据库的的几个步骤如下:

      1、连接MySQL数据库服务器,并判断是否连接正确

      2、选择数据库,并设置字符集(可选)

      3、执行SQL命令

      4、处理结果集

      5、关闭数据库连接

    连接MySQL数据库服务器,并判断是否连接正确

    mysql_connect()

    mysql_connect()函数用来打开一个到 MySQL 服务器的连接。如果成功则返回一个资源, 或者在失败时返回FALSE

    resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )

    mysql_errno()

    mysql_errno()函数用于返回上一个 MySQL 操作中的错误信息的数字编码

    int mysql_errno ([ resource $link_identifier ] )

    mysql_error()

    mysql_error()函数用于返回上一个 MySQL 操作产生的文本错误信息。如果没有指定连接资源号,则使用上一个成功打开的连接从 MySQL 服务器提取错误信息

    string mysql_error ([ resource $link_identifier ] )
    复制代码
    <?php
    $link = mysql_connect('localhost','root','123456');
    var_dump($link);//resource(3, mysql link)
    if(!$link){
        die('连接失败:'.mysql_error());
    }
    ?>
    复制代码

    选择数据库,并设置字符集(可选)

    mysql_select_db()

    mysql_select_db()函数用于选择 MySQL 数据库

    bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )
    复制代码
    <?php
    $link = mysql_connect('localhost','root','zhiaihebe0123');
    var_dump($link);//resource(3, mysql link)
    if(!$link){
        die('连接失败:'.mysql_error());
    }
    mysql_select_db('bookstore',$link) or die('不能选定数据库bookstore:' .mysql_error());
    
    mysql_query('set names utf8');//设置字符集(一般不常用)
    ?>
    复制代码

    执行SQL命令

    mysql_query()

    在PHP中,mysql_query()函数会将sql语句发送到MYSQL服务器并执行,mysql_query() 仅对 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他语句返回一个resource,如果查询出现错误则返回 FALSE;对于其它类型的 SQL 语句,比如INSERT, UPDATE, DELETE, DROP 之类, mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE

    mysql_affected_rows()

    mysql_affected_rows()函数用于取得前一次 MySQL 操作所影响的记录行数。执行成功则返回受影响的行的数目,如果最近一次查询失败的话,函数返回 -1

    var_dump(mysql_affected_rows());//int3 

    通常通过判断mysql_affected_rows()函数的值是否大于0来确定数据操作是否成功

    mysql_insert_id()

    mysql_insert_id()函数用来取得上一步 INSERT 操作产生的 ID

    复制代码
    <?php
    $insert = "insert into books(bookname, publisher, author, price, detail) values
    ('PHP','电子工业出版社','张三','80.00','PHP相关'),
    ('ASP','电子工业出版社','李四','90.00','ASP相关'),
    ('JSP','电子工业出版社','王五','70.00','JSP相关')";
    $result = mysql_query($insert);
    if($result && mysql_affected_rows() > 0){
        //刷新页面两次后,相当于插入了两次数据。页面显示数据记录插入成功,最后一条插入的数据记录id为:4
        echo "数据记录插入成功,最后一条插入的数据记录id为:".mysql_insert_id()."<br>";
    }else{
        //若在数据表删除后,则显示数据记录插入失败,错误号:1146,错误原因:La table 'bookstore.books' n'existe pas
        echo "数据记录插入失败,错误号:".mysql_errno().",错误原因:".mysql_error()."<br>";
    }
    ?>
    复制代码

    实际上,由于4、5、6三条语句是同时插入的,这时显示的是第一个id为4

    处理结果集

    在PHP脚本中执行SELECT查询命令,也是调用mysql_query()函数,但和执行DML不同的是,执行SELECT命令之后,mysql_query()函数的返回值是一个PHP资源的引用指针(结果集)。这个返回值可以在各种结果集处理函数中,对结果数据表的各个字段进行处理

    mysql_num_fields()

    mysql_num_fields()函数取得结果集中字段的数目

    int mysql_num_fields ( resource $result )

    mysql_num_rows()

    mysql_num_rows()函数取得结果集中行的数目

    int mysql_num_rows ( resource $result )
    $result = mysql_query("SELECT * FROM books");
    $rows = mysql_num_rows($result);
    $cols = mysql_num_fields($result);
    var_dump($rows,$cols);//int 4 int 8

    mysql_fetch_row()

    mysql_fetch_row()函数从结果集中取得一行作为枚举数组

    array mysql_fetch_row ( resource $result )
    复制代码
    $result = mysql_query("SELECT * FROM books");
    $row = mysql_fetch_row($result);
    //Array ( [0] => 1 [1] => PHP [2] => 电子工业出版社 [3] => 张三 [4] => 80.00 [5] => 0 [6] => [7] => PHP相关 )
    print_r($row);
    $row = mysql_fetch_row($result);
    //Array ( [0] => 3 [1] => JSP [2] => 电子工业出版社 [3] => 王五 [4] => 70.00 [5] => 0 [6] => [7] => JSP相关 )
    print_r($row);
    复制代码

    mysql_fetch_assoc()

    mysql_fetch_assoc()函数从结果集中取得一行作为关联数组

    array mysql_fetch_assoc ( resource $result )
    复制代码
    $result = mysql_query("SELECT * FROM books");
    $assoc = mysql_fetch_assoc($result);
    //Array ( [id] => 1 [bookname] => PHP [publisher] => 电子工业出版社 [author] => 张三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相关 )
    print_r($assoc);
    $assoc = mysql_fetch_assoc($result);
    //Array ( [id] => 3 [bookname] => JSP [publisher] => 电子工业出版社 [author] => 王五 [price] => 70.00 [ptime] => 0 [pic] => [detail] => JSP相关 )
    print_r($assoc);
    复制代码

    mysql_fetch_array()

    mysql_fetch_array()函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有。

    mysql_free_result()

    mysql_free_result()函数用于释放结果内存

    bool mysql_free_result ( resource $result )

    mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放

    关闭数据库连接

    mysql_close()

    mysql_close()函数用于关闭 MySQL 连接

    bool mysql_close ([ resource $link_identifier = NULL ] )

    mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier,则关闭上一个打开的连接

  • 相关阅读:
    CSS---@import
    C语言中float,double类型,在内存中的结构(存储方式)
    科普:字,字长,字节,位
    mysql的字段类型范围必须重视起来
    print,print_r,echo,var_dump,var_export比较
    常见编码格式
    php截取字符串,无乱码
    MYSQL配置详解
    Mysql主从复制,读写分离
    17173php招聘
  • 原文地址:https://www.cnblogs.com/it-fool/p/shall_with_all_php_file_2.html
Copyright © 2011-2022 走看看