文档章节

php与mysqli开发 预处理

骑个蜗牛追宝马
 骑个蜗牛追宝马
发布于 2016/01/03 23:08
字数 1450
阅读 36
收藏 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
为什么推荐使用MySQLi?

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

Gary Chen
2016/04/20
0
0
php mysqli prepare 生命周期是?

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

beliefT
2017/02/17
104
1
php连接mysql数据库的几种方式(mysql、mysqli、pdo)

php连接mysql数据库的几种方式(mysql、mysqli、pdo) www.111cn.net 编辑:flyfox 来源:转载 php与mysql的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) ,...

DanEcho
2016/11/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

小白创建一个spring boot项目

进入 https://start.spring.io/

lilugirl
今天
1
0
Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源

背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No credential found 那么怎样排查这些奇怪的日志从哪里打印出来的呢?因为搞不清...

hengyunabc
今天
1
0
home hosts

home hosts lwk@qwfys:~$ cat /etc/hosts127.0.0.1 localhost127.0.1.1 qwfys192.168.56.101vm600.qwfys.com39.108.212.91alpha1.ppy.com39.108.117.122alpha2.p......

qwfys
今天
1
0
大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
今天
5
0
hadoop垃圾回收站

在生产生,hdfs回收站必须是开启的,一般设置为7天。 fs.trash.interval 为垃圾回收站保留时间,如果为0则禁用回收站功能。 fs.trash.checkpoint.interval 回收站检查点时间,一般设置为小于...

hnairdb
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部