php预处理查询

$query='insert into p1(info) values(?)';
$query2='select info from p1 where id=?';
$country=2; // 创建预处理语句
$stmt=mysqli_stmt_init($link); if (mysqli_stmt_prepare($stmt,$query2))
{ // 绑定参数
mysqli_stmt_bind_param($stmt,"i",$country); // 执行查询
mysqli_stmt_execute($stmt); // 绑定结果变量
mysqli_stmt_bind_result($stmt,$name); //此处的变量有几个查询参数就返回写几个 // 获取值
mysqli_stmt_fetch($stmt); printf("国家的网站为:%s",$name); // 关闭预处理语句
mysqli_stmt_close($stmt);
}

循环取数据

$query2='select id,info from p1 where id=? or id=?';
$country=2;
$country2=10;
// 创建预处理语句
$stmt=mysqli_stmt_init($link); if (mysqli_stmt_prepare($stmt,$query2))
{ // 绑定参数
mysqli_stmt_bind_param($stmt,"ii",$country,$country2); // 执行查询
mysqli_stmt_execute($stmt);
//暑促一个对行数的影响
var_dump(mysqli_affected_rows($link)) ;
// 绑定结果变量
mysqli_stmt_bind_result($stmt,$id,$name); // 获取值 while(mysqli_stmt_fetch($stmt)){
printf("查询结果:%s,%s",$id,$name);
}

php预处理插入

$query='insert into p1(info) values(?)';
$country=2; // 创建预处理语句
$stmt=mysqli_stmt_init($link);
// 绑定参数
if (mysqli_stmt_prepare($stmt,$query))
{ // 绑定参数
mysqli_stmt_bind_param($stmt,"s",$country); // 关闭预处理语句
mysqli_stmt_close($stmt);
}

补充

   从一个prepared语句返回结果集元数据,配合相关函数,可以用来获得字段的相关信息
        mysqli_result mysqli_stmt_result_metadata ( mysqli_stmt $stmt );
        ①mysqli_fetch_field();
        ②mysqli_fetch_fields();
    取回一个结果集
        bool mysqli_stmt_store_result ( mysqli_stmt $stmt );
        取回之后可以使用int mysqli_stmt_num_rows ( mysqli_stmt $stmt );返回语句结果集中的行数
    释放给定语句处理存储的结果集所占内存
        void mysqli_stmt_free_result ( mysqli_stmt $stmt );
  关闭一个prepared语句
        bool mysqli_stmt_close ( mysqli_stmt $stmt );

    //从一个prepared语句返回结果集元数据,配合相关函数,可以用来获得字段的相关信息==================
var_dump($a=mysqli_stmt_result_metadata ($stmt ));
//获取字段信息
var_dump(mysqli_fetch_field($a));
var_dump(mysqli_fetch_field($a));

PHP SQL预处理的更多相关文章

  1. MySQL的SQL预处理(Prepared)

    Prepared SQL Statement:SQL的执行.预编译处理语法.注意点 一.SQL 语句的执行处理1.即时 SQL 一条 SQL 在 DB 接收到最终执行完毕返回,大致的过程如下: 1. ...

  2. SQL预处理

    每向数据库发送一条SQL语句,数据库中的SQL解释器就会将SQL语句转换成数据库底层命令,然后执行该命令完成相关的数据库操作.如果频繁的向数据库提交SQL语句,势必会增加数据库中SQL解释器的负担,进 ...

  3. 笔记:MyBatis 动态SQL

    有时候,静态的SQL语句并不能满足应用程序的需求.我们可以根据一些条件,来动态地构建SQL语句.例如,在Web应用程序中,有可能有一些搜索界面,需要输入一个或多个选项,然后根据这些已选择的条件去执行检 ...

  4. laravel 查看sql

    方法一: 我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 SQL 语句,我们简单在 routes.php 做个实验即可: //app/Http ...

  5. (2.11)Mysql之SQL基础——存储过程与变量

    (2.11)Mysql之SQL基础——存储过程 关键字:mysql存储过程 查看存储过程: []SELECT * FROM information_schema.ROUTINES WHERE ROUT ...

  6. Java Persistence with MyBatis 3(中文版) 第三章 使用XML配置SQL映射器

    关系型数据库和SQL是经受时间考验和验证的数据存储机制.和其他的ORM 框架如Hibernate不同,MyBatis鼓励开发者可以直接使用数据库,而不是将其对开发者隐藏,因为这样可以充分发挥数据库服务 ...

  7. laravel查看sql语句

    我自己是用第一种方法来调试的,第三种不行 不知道为啥 laravel查看sql语句 方法一: 我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 ...

  8. laravel查看执行的sql语句

    方法一: 我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 SQL 语句,我们简单在 routes.php 做个实验即可: //app/Http ...

  9. SQL语法详解

    ALTER DATABASE修改数据库全局特性 ALTER DATABASE实际上是修改数据库目录中的dp.opt文件 ALTER TABLE修改表的结构 ALTER TABLE对表进行增删列,创建取 ...

随机推荐

  1. Java9新特性系列(module&maven&starter)

    上篇已经深入分析了Java9中的模块化,有读者又提到了module与starter是什么关系?本篇将进行分析. 首先先回顾下module与maven/gradle的关系: module与maven/g ...

  2. CentOS7.x上轻量级TCP转发工具rinetd的安装配置

    一.实验背景 Linux下端口转发一般都使用iptables来实现,使用iptables可以很容易将TCP和UDP端口从防火墙转发到内部主机上. 如果需要将流量从专用地址转发到不在您当前网络上的机器上 ...

  3. 升级vue项目中的element-ui的版本

    首先卸载项目中的element-ui 命令为: npm uninstall element-ui / cnpm uninstall element-ui 安装更新最新的element-ui 命令为 n ...

  4. 图论--2-SAT--poj 3678-Katu Puzzle(模板题)

    Description Katu Puzzle is presented as a directed graph G(V, E) with each edge e(a, b) labeled by a ...

  5. python(类继承)

    一.继承 1.单继承 一个对象使用另一个对象的属性和方法,被继承的类也称父类 (1)父类与子类的方法不一样 class Four(): def sub(self,x,y): return x + y ...

  6. python的unittest框架中的assert断言

    unittest框架自带断言,如果想用assert断言,一定要引入unittest.TestCase框架才行,不然不会自动识别assert断言

  7. celery的定时任务

    定时任务 Celery 中启动定时任务有两种方式,(1)在配置文件中指定:(2)在程序中指定. # cele.py import celery app = celery.Celery('cele', ...

  8. 解决python语言的工具pycharm以及Windows电脑安装pygame模块的问题

    人生苦短,我用python,python作为一门当今时代潮流性的语言,已经成为大多数的年轻程序猿们向往的目标,python中有许多的库, 其中有一个pygame库是作为开发2D游戏必不可少的开发库,是 ...

  9. 解决Vue中文本输入框v-model双向绑定后数据不显示的问题

    前言 项目中遇到一个问题就是在Vue中双向绑定对象属性时,手动赋值属性后输入框的数据不实时更新的问题. <FormItem label="地址" prop="eve ...

  10. Spring官网阅读(十五)Spring中的格式化(Formatter)

    文章目录 Formatter 接口定义 继承树 注解驱动的格式化 AnnotationFormatterFactory FormatterRegistry 接口定义 UML类图 FormattingC ...