文档章节

php与mysqli开发 预处理

骑个蜗牛追宝马
 骑个蜗牛追宝马
发布于 2016/01/03 23:08
字数 1450
阅读 37
收藏 1

建立数据库连接对象也叫实例化对象   mysqli类

<?php
$host='localhost';
$user='root';
$pass='';
$dbname='db';
$port='3306';
$charset='utf8';
$m=new mysqli($host,$user,$pass,$dbname,$port);
if($m->connect_error){
  die('数据库连接失败,请检查...');
}
$m->set_charset($charset);

预处理语句 数据的插入

$stmt=$m->prepare('insert into stud values(null,?,?)');//执行相关的数据库sql语句
$stmt->bind_param('si',$n,$a);//$n,$a必须为引用变量  bind_param:将变量绑定到结果存储的准备语句 
$n='jack';                    //在使用 mysqli_stmt 相关预处理SQL的方法时,调用bind_param会报一个参数不足的错误,所以要引用变量
$a=32;
$stmt->execute();             
$stmt->free_result();

预处理   数据的修改

$stmt=$m->prepare('update student set name=?,age=? where id=?');  //?不能加引号‘?’,预处理会自动处理?
$stmt->bind_param('sii',$n,$a,$i);
$n='李四';
$a=27;
$i=4;
$stmt->execute();//预处理的查询   执行一个查询,用了mysqli_prepare()功能先前准备的。当执行任何存在的参数标记时,将自动被适当的数据替换
$stmt->free_result(); //释放与该语句关联的结果内存

删除数据

$stmt=$m->prepare('delete from student where id=?');
$stmt->bind_param('i',$id);
$id =5:
$stmt->execute();
if($stmt->affected_rows>0){   //affected_rows  返回更改、删除或插入最后执行语句的行总数
echo '删除成功';
}

查询语句

$stmt=$m->prepare('select from student');
$stmt=execute();
$result =$stmt->get_result();//得到结果
while($rows=$result->fetch_assoc()){     // fetch_assoc 提取所有结果行作为关联数组,一个数值型数组  
echo $rows['name'].'<br>';               //返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。
}

//$rows=$result->fetch_all(2);  //fetch_all函数从结果集中取得所有行作为关联数组,或数字数组,或二者兼有
//foreach($rows as $v){
//  echo $v[1].'<br>';
//}

 

mysqi 相关的函数

mysqli_affected_rows()          返回前一个 Mysql 操作的受影响行数。

mysqli_autocommit()               打开或关闭自动提交数据库修改功能。

mysqli_change_user()          更改指定数据库连接的用户。

mysqli_character_set_name()       返回数据库连接的默认字符集。

mysqli_close()                  关闭先前打开的数据库连接。

mysqli_commit()                  提交当前事务。

mysqli_connect_errno()          返回最后一次连接调用的错误代码。

mysqli_connect_error()返回上一次连接错误的错误描述。

mysqli_connect()打开到 Mysql 服务器的新连接。

mysqli_data_seek()调整结果指针到结果集中的一个任意行。

mysqli_debug()执行调试操作。

mysqli_dump_debug_info()转储调试信息到日志中。

mysqli_errno()返回最近的函数调用产生的错误代码。

mysqli_error_list()返回最近的函数调用产生的错误列表。

mysqli_error()返回字符串描述的最近一次函数调用产生的错误代码。

mysqli_fetch_all()抓取所有的结果行并且以关联数据,数值索引数组,或者两者皆有的方式返回结果集。

mysqli_fetch_array()以一个关联数组,数值索引数组,或者两者皆有的方式抓取一行结果。

mysqli_fetch_assoc()以一个关联数组方式抓取一行结果。

mysqli_fetch_field_direct()以对象返回结果集中单字段的元数据。

mysqli_fetch_field()以对象返回结果集中的下一个字段。

mysqli_fetch_fields()返回代表结果集中字段的对象数组。

mysqli_fetch_lengths()返回结果集中当前行的列长度。

mysqli_fetch_object()以对象返回结果集的当前行。

mysqli_fetch_row()从结果集中抓取一行并以枚举数组的形式返回它。

mysqli_field_count()返回最近一次查询获取到的列的数目。

mysqli_field_seek()设置字段指针到特定的字段开始位置。

mysqli_field_tell()返回字段指针的位置。

mysqli_free_result()释放与某个结果集相关的内存。

mysqli_get_charset()返回字符集对象。

mysqli_get_client_info()返回字符串类型的 Mysql 客户端版本信息。

mysqli_get_client_stats()返回每个客户端进程的统计信息。

mysqli_get_client_version()返回整型的 Mysql 客户端版本信息。

mysqli_get_connection_stats()返回客户端连接的统计信息。

mysqli_get_host_info()返回 MySQL 服务器主机名和连接类型。

mysqli_get_proto_info()返回 MySQL 协议版本。

mysqli_get_server_info()返回 MySQL 服务器版本。

mysqli_get_server_version()返回整型的 MySQL 服务器版本信息。

mysqli_info()返回最近一次执行的查询的检索信息。

mysqli_init()初始化 mysqli 并且返回一个由 mysqli_real_connect() 使用的资源类型。

mysqli_insert_id()返回最后一次查询中使用的自动生成 id。

mysql_kill()请求服务器终结某个 MySQL 线程。

mysqli_more_results()检查一个多语句查询是否还有其他查询结果集。

mysqli_multi_query()在数据库上执行一个或多个查询。

mysqli_next_result()从 mysqli_multi_query() 中准备下一个结果集。

mysqli_num_fields()返回结果集中的字段数。

mysqli_num_rows()返回结果集中的行数。

mysqli_options()设置选项。

mysqli_ping()Ping 一个服务器连接,或者如果那个连接断了尝试重连。

mysqli_prepare()准备一条用于执行的 SQL 语句。

mysqli_query()在数据库上执行查询。

mysqli_real_connect()打开一个到 Mysql 服务端的新连接。

mysqli_real_escape_string()转义在 SQL 语句中使用的字符串中的特殊字符。

mysqli_real_query()执行 SQL 查询。

mysqli_reap_async_query()返回异步查询的结果。

mysqli_refresh()刷新表或缓存,或者重置复制服务器信息。

mysqli_rollback()回滚当前事务。

mysqli_select_db()改变连接的默认数据库。

mysqli_set_charset()设置默认客户端字符集。

mysqli_set_local_infile_default()清除用户为 load local infile 命令定义的处理程序。

mysqli_set_local_infile_handler()设置 LOAD DATA LOCAL INFILE 命令执行的回调函数。

mysqli_sqlstate()返回前一个 Mysql 操作的 SQLSTATE 错误代码。

mysqli_ssl_set()使用 SSL 建立安装连接。

mysqli_stat()返回当前系统状态。

mysqli_stmt_init()初始化一条语句并返回一个由 mysqli_stmt_prepare() 使用的对象。

mysqli_store_result()传输最后一个查询的结果集。

mysqli_thread_id()返回当前连接的线程 ID。

mysqli_thread_safe()返回是否设定了线程安全。

mysqli_use_result()初始化一个结果集的取回。

mysqli_warning_count()返回连接中最后一次查询的警告数量。

 

 

© 著作权归作者所有

共有 人打赏支持
骑个蜗牛追宝马
粉丝 0
博文 37
码字总数 14793
作品 0
郑州
程序员
私信 提问
PHP-MySQL连接问题

在使用PHP去连接MySQL数据库时,有三种(流行的)方法: PHP-MySQL, PHP-MySQLi, PDO, 有一些需要注意的地方: 1, 当我们谈论MySQL的时候,更多的是指关系型数据库; 2,PHP-MySQL和PHP-MySQLi是...

vinci321
03/08
0
0
PHP之防御sql注入攻击的方式

长期以来,web的安全性存在着巨大的争议与挑战。其中,sql注入就是一种常见的一种攻击方法,开发人员普遍的做法就是不停的过滤,转义参数,可是我们php天生弱类型的机制,总是让黑客有机可乘...

丶辉
2016/08/24
158
0
php mysqli prepare 生命周期是?

php mysqli 使用预处理,那这个预处理什么时候会被注销呢?又该什么时候使用预处理? 如果单个php只执行一次sql,那多个php实例跑的话prepare不是比直接查询更慢?

beliefT
2017/02/17
109
1
PDO 指南

简介 前面咱已经见过MySQLi了,现在咱一起来看看PDO类。PDO是PHP Data Objects的缩写,它被描述为“在PHP中访问数据库的轻量级,兼容性的接口”。尽管它的名字不咋好听,但PDO是一个在PHP中访...

oschina
2013/08/12
12.2K
7
为什么推荐使用MySQLi?

虽然许多项目仍然使用MySQL扩展。但需要留意,使用MySQLi或者PDO O (PHP Data Object)是官方建议的。 为什么推荐使用MySQLi而不是MySQL呢? 1. 为了安全。MySQLi支持 prepare(预处理)语句 ...

Gary Chen
2016/04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
5
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
5
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
17
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
33
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部