文档章节

php与mysqli开发 预处理

骑个蜗牛追宝马
 骑个蜗牛追宝马
发布于 2016/01/03 23:08
字数 1450
阅读 34
收藏 1
点赞 0
评论 0

建立数据库连接对象也叫实例化对象   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

PHP之防御sql注入攻击的方式

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

丶辉 ⋅ 2016/08/24 ⋅ 0

PHP+MySQL最基础的数据库操作方法备忘录

PHP+MySQL是比较常见的搭配,我用这篇文章记录最基础的数据库操作方法,后面我认为属于这方面基础的知识,都会统一补充记录在这篇文章中。 注:由于我主观上不喜欢Oracle这个公司,而MySQL被...

小叶与小茶 ⋅ 2014/01/05 ⋅ 0

php mysqli prepare 生命周期是?

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

beliefT ⋅ 2017/02/17 ⋅ 1

为什么推荐使用MySQLi?

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

Gary Chen ⋅ 2016/04/20 ⋅ 0

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

PHP+MySQL缓冲查询和无缓冲查询

http://php.net/manual/zh/mysqlinfo.concepts.buffering.php http://php.net/manual/zh/mysqli.query.php PHP MySQL查询(mysqli,pdo_mysql)默认使用缓冲模式. 也就是说查询结果将一次性从M......

eechen ⋅ 2015/12/30 ⋅ 1

PHP PDOStatement对象bindpram()、bindvalue()和bindcolum

PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别 PDOStatement::bindParam ― 绑定一个参数到指定的变量名。 绑定一个PHP变量到用作预处理的SQL语句中的对应命名占位符或...

开元中国2015 ⋅ 2015/07/31 ⋅ 0

PHP 学习必备技能(基础略过)

1.面向对象编程 面向对象编程基本概念 类和对象的关系 如何定义类 成员属性(变量) 如何创建对象实例及如何访问对象属性 对象在内存中存在的形式 栈、堆、全局区、常量区和代码区的关系 成员方...

风雪中的舞者 ⋅ 2015/08/05 ⋅ 0

实现PHP基本安全的11条准则

1.不要依赖注册全局变量功能(registerglobals) 注册全局变量的出现曾经让PHP变得非常易用,但也降低了安全性(方便之处经常会破坏安全性)。建议在编程时把registerglobals指令关闭,在PHP6中这...

疯狂的流浪 ⋅ 2010/12/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

线程池

一、线程池:提供了一个线程队列,队列中保存着所有等待状态的线程。避免了创建与销毁额外开销,提高了响应的速度。 二、线程池的体系结构: java.util.concurrent.Executor : 负责线程的使用...

stars永恒 ⋅ 15分钟前 ⋅ 0

你值5K还是15K?实战案例,测测你的分析功力

本文源自陈老师遇到的真实案例。 老板说:“我们今年准备参加展会,做一年。以前我没参加过,没关系,这里有一份展会数据,你回去分析下哪些有价值,后边组织的时候有个指导”。现在你收到任...

加米谷大数据 ⋅ 16分钟前 ⋅ 0

中文转英文功能

package com.sysware.task.util;import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4j.for......

AK灬 ⋅ 17分钟前 ⋅ 0

JNI Java层类关联C/C++层的类

Android开发时,因为要实现某某功能,需要集成算法公司的算法库(so库),这就需要自己编写JNI。 通常这些库提供的接口可以概况成1、初始化 2、算法处理 3、释放 4、打印版本号 初始化后会返...

国仔饼 ⋅ 21分钟前 ⋅ 0

maven下载jar包改为阿里云的maven库

一:修改maven安装路径中conf文件夹下的setting.xml文件 <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/......

夜醒者 ⋅ 21分钟前 ⋅ 0

电商用户行为分析大数据平台相关系列10-基础数据结构分析

电商用户行为分析大数据平台相关系列1-环境介绍 电商用户行为分析大数据平台相关系列2-HADOOP环境搭建 电商用户行为分析大数据平台相关系列3-HIVE安装 电商用户行为分析大数据平台相关系列4...

xiaomin0322 ⋅ 22分钟前 ⋅ 0

使用readLine()方法遇到的坑

下午玩 TCP/IP 的 Socket 通信时,使用 BufferedReader 的 readLine() 遇到了一个坑,现在终于解决了,特此记录下来。 程序很简单,客户段从控制台读取用户输入,然后发送至服务器端,主要代...

孟飞阳 ⋅ 22分钟前 ⋅ 0

基于Hadoop集群的Hive安装配置(Derby数据库)

Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据,提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行(具体的Hive架构大家自行搜索)。接下来主要讲下Hadoop集群下...

海岸线的曙光 ⋅ 23分钟前 ⋅ 0

CoreOS裸机iso安装和相关配置

裸机通过iso安装CoreOS,个人趟了很多坑,以下就是完整的从零开始部署和配置的过程,希望对大家有用。 一、安装CoreOS到硬盘 1. 准备Live iso镜像,制作好usb启动盘 Live iso下载地址 2. 搭建...

ykbj ⋅ 28分钟前 ⋅ 0

jquery控制表格锁列(转)

表格已经完成后新加的需求,要实现锁表格的第一列。很多带这种效果的都是js封装的框架或者具体某种框架的组件,不适用解决当前问题。作为后端开发又实在不熟样式,搜到了一个可以用的,虽然样...

刘昌鑫 ⋅ 30分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部