PHP SQL预处理
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));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理