php mysqli扩展之预处理实例详解
技术百科
零下一度
发布时间:2017-06-28
浏览: 次 在前一篇 mysqli基础知识中谈到mysqli的安装及基础操作(主要是单条sql语句的查询操作),今天介绍的是mysqli中很重要的一个部分:预处理。
在mysqli操作中常常涉及到它的三个主要类:MySQLi类,MySQL_STMT类,MySQLi_RESULT类。预处理主要是利用MySQL_STMT类完成的。
预处理是一种重要的 防止SQL注入的手段,对提高网站安全性有重要意义。
本文案例为 数据库名为test,数据表名为test, 字段有id ,title 两个,id自增长主键。
connect_errno) { "Connect Error:".$mysqli->connect_error;
}$mysqli->set_charset('utf8');$id='';$title='title4';//用?代替 变量$sql="INSERT test VALUES (?,?)";//获得$mysqli_stmt对象,一定要记住传$sql,预处理是对sql语句的预处理。$mysqli_stmt=$mysqli->prepare($sql);//第一个参数表明变量类型,有i(int),d(double),s(string),b(blob)$mysqli_stmt->bind_param('is',$id,$title);//执行预处理语句if($mysqli_stmt->execute()){ echo $mysqli_stmt->insert_id;
}else{ echo $mysqli_stmt->error;
}$mysqli->close();使用mysqli预处理防止sql注入:
$id='4';$title='title4';$sql="SELECT * FROM test WHERE id=? AND title=?";$mysqli_stmt=$mysqli->prepare($sql);$mysqli_stmt->bind_param('is',$id,$title);if ($mysqli_stmt->execute()) { $mysqli_stmt->store_
result(); if($mysqli_stmt->num_rows()>0){ echo "验证成功";
}else{ echo "验证失败";
}
} $mysqli_stmt->free_result(); $mysqli_stmt->close();使用mysqli预处理执行查询语句:
$sql="SELECT id,title FROM test WHERE id>=?";$mysqli_stmt=$mysqli->prepare($sql);$id=1;$mysqli_stmt->bind_param('i',$id);if($mysqli_stmt->execute()){ $mysqli_stmt->store_result(); //将一个变量绑定到一个prepared语句上用于结果存储 $mysqli_stmt->bind_result($id,$title); while ($mysqli_stmt->fetch()) { echo $id.' :'.$title.'
';
}
}
# 的是
# 是一种
# 第一个
# 涉及到
# 绑定
# 重要意义
# 主要是
# 主键
# 在前
# 单条
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- 如何在 Laravel 中通过嵌套关联关系进行 o
- php增删改查报错1054怎么办_字段名错误排查修
- Win11如何设置文件权限 Win11 NTFS文
- Win11怎么设置开机问候语_自定义Win11锁屏
- Win10如何关闭安全中心所有通知 Win10禁用
- Python集合操作技巧_高效去重解析【教程】
- Win11怎么设置应用分屏_Windows11贴靠
- Windows10系统更新错误0x80070002
- 如何在Golang中操作嵌套切片指针_Golang
- Windows11如何设置专注助手_Windows
- Win11怎么设置虚拟键盘_打开Win11屏幕键盘
- 如何在 Go 中正确反序列化多个同级 XML 元素
- C++如何解析JSON数据?(nlohmann/j
- PHP cURL GET请求:正确设置请求头与身份
- Win11如何暂停系统更新 Win11暂停更新最长
- Python对象生命周期管理_创建销毁解析【教程】
- 如何在Golang中实现基础配置管理功能_Gola
- Win11输入法选字框不见了怎么办_Win11输入
- Win11任务栏颜色怎么改_Win11自定义任务栏
- Mac如何使用听写功能_Mac语音输入打字【效率技
- c++怎么实现高并发下的无锁队列_c++ std:
- php嵌入式多设备通信怎么实现_php同时管理多个
- Python日志系统设计与实现_高可观测性架构实战
- c++中如何使用std::variant_c++1
- Python大文件处理策略_内存优化说明【指导】
- Win11怎么关闭系统声音_Win11系统提示音静
- Win11怎么设置组合键快捷方式_Windows1
- Win11怎么更改任务栏位置_修改注册表将Win1
- Windows10如何查看蓝屏日志_Win10使用
- c# 如何用c#实现一个支持优先级的任务队列
- C++如何使用std::optional?(处理可
- XSLT怎么生成动态的HTML属性名和标签名
- php中self::能调用子类重写的方法吗_静态绑
- Windows10电脑怎么查看硬盘通电时间_Win
- 如何在 ACF 中正确更新嵌套多层 Group 字
- php打包exe怎么传递参数_命令行参数接收方法【
- c++怎么处理多线程死锁_c++ lock_gua
- Python数据挖掘进阶教程_分类回归与聚类案例解
- Windows笔记本无法进入睡眠模式怎么办?(电源
- php与c语言在嵌入式中有何区别_对比两者在硬件控
- Win11怎么设置麦克风权限_允许应用访问Win1
- Python 中将 ISO 8601 时间戳转换为
- Mac怎么查看活动监视器_理解Mac进程和资源占用
- c++获取当前时间戳_c++ time函数使用详解
- Win11怎么设置任务栏对齐方式_Windows1
- 如何在Golang中实现微服务负载均衡_Golan
- Python数据挖掘核心算法实践_聚类分类与特征工
- Mac如何创建和管理多个桌面空间_Mac高效多任务
- Python迭代器生成器进阶教程_节省内存与懒加载
- 零基础学会Python自动化办公_高效处理Exce

result(); if($mysqli_stmt->num_rows()>0){ echo "验证成功";
}else{ echo "验证失败";
}
} $mysqli_stmt->free_result(); $mysqli_stmt->close();
QQ客服