php_mysqli基本操作

1.建立、关闭与MySQL服务器的连接
    1)连接指定的mysql服务器
       [email protected]_connect($host, $user, $password,$database,$port);
   2)连接错误时的提示
       int mysqli_connect_errno ();//返回最后一次连接调用的错误代码
       string mysqli_connect_error ();//返回一个字符串描述的最后一次连接调用的错误代码
   3)设置默认字符编码
       bool mysqli_set_charset ( mysqli $link , string $charset )
   4)选择特定的数据库
       bool mysqli_select_db ( mysqli $link , string $dbname);
   5)关闭与mysql服务器的连接
       bool mysqli_close ( mysqli $link );
2.执SQL语句
    1)对数据库执行一条SQL语句
        1>mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] );
            ①对于insert,update,delete等不会返回数据的SQL语句,在执行没有错误时将返回true。
            ②对于返回数据的SQL语句执行成功的时候会返回结果集对象可以使用操作结果集对象的函数来从中获取数据
            ③MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT决定了mysqli client和server之间取结果集的方式。
               MYSQLI_STORE_RESULT:执行SQL时提取结果集返回给client,并分配内存,存储到用户程序空间中,之后mysqli_fetch_array()
               相当于是从本地取数据;而MYSQLI_USE_RESULT方式下,mysqli_fetch_array()每次都要向server请求结果行。
               MYSQLI_USE_RESULT:执行SQL的时候并没有从server将结果集取回
        2>bool mysqli_real_query ( mysqli $link , string $query );
            也可以使用本函数对数据库执行一条SQL语句,返回结果为布尔值,不返回结果集。
            如果想获取结果集可以使用mysqli_store_result()获取结果集对象.
        3>如果在执行SQL语句的时候发生错误,以上两个函数都将返回false,并且可以使用以下函数处理错误原因
            int mysqli_errno ( mysqli $link );
            string mysqli_error ( mysqli $link );
    2)操作结果集对象的函数
        1>从结果集对象中解析数据的常见函数
             ①以索引数组的方式获取一条记录的数据
                           mixed mysqli_fetch_row ( mysqli_result $result );
                           重复使用以获取下一条记录的数据
             ②以关联数组的方式获取一条记录的数据
                           array mysqli_fetch_assoc ( mysqli_result $result );
                           重复使用以获取下一条记录的数据
             ③以索引数组或关联数组的方式获取一条记录的数据
                           mixed mysqli_fetch_array ( mysqli_result $result [, int $resulttype = MYSQLI_BOTH ] );
                           重复使用以获取下一条记录的数据
             ④以索引数组或关联数组的方式获取全部记录的数据
                           mixed mysqli_fetch_all ( mysqli_result $result [, int $resulttype = MYSQLI_NUM ] );
             ⑤返回结果集中的下一个字段信息
                           object mysqli_fetch_field ( mysqli_result $result );
             ⑥返回一个代表结果集字段的对象数组
                           array mysqli_fetch_fields ( mysqli_result $result );
             ⑦获取结果中行的数量
                           int mysqli_num_rows ( mysqli_result $result );
                           注意:如果使用MYSQLI_USE_RESULT模式则必须在获取完所有的结果才可使用该函数。
        2>释放与一个结果集相关的内存
             返回的结果集在数据量很大的时候需要很多的内存支持,所以在操作完结果集的时候有必要立刻释放与一个结果集相关的内
             存, 释放之后,结果集就不可用了
             void mysqli_free_result ( mysqli_result $result );
    3)其他常用函数
        1>获取前一个Mysql操作的受影响行数
            int mysqli_affected_rows ( mysqli $link );
          2>返回最后一次操作自动生成并使用的id
              mixed mysqli_insert_id ( mysqli $link );
          3>转义用于SQL语句中的特殊字符防止SQL语句出错
             string mysqli_real_escape_string ( mysqli $link , string $escapestr );
    4)一次性执行多条SQL语句,多个SQL语句用分号隔开    
        bool mysqli_multi_query ( mysqli $link , string $query );
3.预处理语句机制
   1)准备一个用于执行的SQL语句
        mysqli_stmt mysqli_prepare ( mysqli $link , string $query );
   2)将变量作为参数绑定到prepared语句上
        bool mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var1 [, mixed &$... ] );
        参数string $types说明:表示后面多个可选参数变量的数据类型,一一对应.
                i:int类型
                d:double或者float类型
                s:字符串类型
                b:二进制数据类型(BLOB、二进制字符串)
   3)执行一个prepared准本好的语句
        bool mysqli_stmt_execute ( mysqli_stmt $stmt );
        
上述三步骤举例    
$query=‘insert into t1(id,info,content,filed1) values(?,?,?,?)‘;
//准备要执行的SQL语句
$stmt=mysqli_prepare($link, $query);

//为?绑定变量
mysqli_stmt_bind_param($stmt,‘issd‘,$val1,$val2,$val3,$val4);

$val1=1;
$val2=‘第五代青蛙‘;
$val3=‘的武器大全我带我去‘;
$val4=60.5;
//执行准备好的SQL语句
var_dump(mysqli_stmt_execute($stmt));

如果是select之类的语句需要具体的结果;
    4)将查询出的数据绑定到PHP变量上
        bool mysqli_stmt_bind_result ( mysqli_stmt $stmt , mixed &$var1 [, mixed &$... ] );
    5)从一个prepared语句中抓取结果到指定变量中
        bool mysqli_stmt_fetch ( mysqli_stmt $stmt );
        
        
    6)从一个prepared语句返回结果集元数据,配合相关函数,可以用来获得字段的相关信息
        mysqli_result mysqli_stmt_result_metadata ( mysqli_stmt $stmt );
        ①mysqli_fetch_field();
        ②mysqli_fetch_fields();
    7)取回一个结果集
        bool mysqli_stmt_store_result ( mysqli_stmt $stmt );
        取回之后可以使用int mysqli_stmt_num_rows ( mysqli_stmt $stmt );返回语句结果集中的行数
    8)释放给定语句处理存储的结果集所占内存
        void mysqli_stmt_free_result ( mysqli_stmt $stmt );
    9)关闭一个prepared语句
        bool mysqli_stmt_close ( mysqli_stmt $stmt );

时间: 2024-11-06 06:36:23

php_mysqli基本操作的相关文章

<二叉树的基本操作>

#include<stdio.h> #include<stdlib.h> #include<string.h> #define num 100 #define OK 1 typedef int Status; typedef char DataType; typedef struct node { DataType data; struct node *lchild,*rchild; }BinTNode,*BinTree; Status CreateBiTree(Bin

iOS_UITextField 基本操作

基本操作 UITextField *userNameTextField = [[UITextField alloc] init]; userNameTextField.frame = CGRectMake(30, 100, 220, 50); [self.window addSubview:userNameTextField]; [userNameTextField release]; // 设置样式 userNameTextField.borderStyle = UITextBorderSty

Mongodb入门系列(4)——Mongodb体系结构与客户端基本操作及注意细节

说到Mongodb的体系结构,免不了与关系型数据库做个对比.这里以MySQL为例,我们进行一些比较: 从逻辑结构上对比: MySQL层次概念 MongoDB层次概念 数据库(database) 数据库(database) 表(table) 集合(collection) 记录(row) 文档(document) 在MongoDB中没有行.列.关系的概念,集合中的文档相当于一条记录,这体现了模式自由的特点. 从数据存储结构上对比: MySQL的每个数据库存放在一个与数据库同名的文件夹中,MySQL如

Oracle的基本操作-解除用户,赋予权限

一.表的基本操作 1. 用户管理 1.1 初始状态下系统的用户 在系统用户下,执行下面的查询语句可以查看到当前系统的所有用户  select * from dba_users; 1.2 创建一个用户 SQL> create user xp identified by xp; User created. 授予连接数据库的权限:SQL> grant connect to xp; Grant succeeded. SQL> conn xp/xp;Connected. 1.3 解锁一个用户并修改

数据结构中线性表的基本操作-合并两个线性表-依照元素升序排列

#include<iostream> #include<stdlib.h> #define LIST_INIT_SIZE 10/*线性表初始长度*/ #define LIST_CREATENT 2/*每次的增量*/ typedef int ElemType; using namespace std; typedef struct SqList/*线性表的数据结构定义*/ { ElemType *elem;/*线性表基址*/ int length;/*当前线性表所含的元素个数*/ i

【华为技术】VRP平台基本操作

一.显示系统信息 <Huawei>display version 图上所示可以知道VRP平台信息,运行的版本,运行的时间 二.修改和查看设备系统时间参数 1.查看时间 <Huawei>display clock 2.修改系统日期和时间 三.进入系统视图界面 <Huawei>system-view 可以配置接口.路由协议等 四.修改设备名称 五.配置登录标语信息 [R1]header shell information "Welcome to Huawei ro

Mysql查询优化从入门到跑路(三)查询的基本操作

查询的基本操作 1.选择操作 对应的是限制条件,操作对象是二维表的行. 优化方式:选择操作下推 目的:尽量减少连接操作前的元租数,使得中间临时关系尽量少(元祖数少,连接得到的元组数就少) 好处:这样可能减少IO和CPU的消耗.节约内存空间 2.投影操作 对用的SELECT查询的目的列对象 优化方式:投影操作下推 目的:尽量减少连接操作前的列数,使得中间临时关系尽量小(选择操作是使元组的个数尽量少,投影操作是使一条元组尽量少) 好处:虽然不能减少IO(多数数据库存储方式是行存储,元组是读取的最基本

TP框架对数据库的基本操作

数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写config.php文件 我这里是这样的文件路径 (2)打开这个config.php文件,然后找到父类配置文件convention.php文件,将关于"数据库"的部分复制粘贴到config.php配置文件中 1 2 3 4 5 6 7 8 9 /

图形数据库Neo4J的基本操作

1.创建一个节点 1 语法:CREATE (node-name:label-name{Property1-name:Property1-Value,...Propertyn-name:Propertyn-Value}) 2 如: 3 create(江湖流派:明教{name:'张无忌',skill:'九阳真经'}) 2.为两个节点建立关系 1 语法:CREATE(node1:label1)-[relationship-name:relationship-label-name]->(node2:la