在使用 mysqli_stmt 相关预处理SQL的方法时,调用bind_param会报一个参数不足的错误。可以采用如下方式解决,假设你有一个这样的封装:
function execute_stmt($sql_str , $params=array()){ $stmt = mysqli_stmt_prepare($link_id, $sql_str); if ( $stmt ){ foreach($params as $k=>$v){ $array[] = &$params[$k]; //注意此处的引用 } call_user_func_array(array($stmt, 'bind_param'), $array); // 魔术方法直接call $stmt->execute(); ... // 若干方法 } }
由于PHP手册上写到,这个方法是传递可变长度的参数表,因此直接传递数组的话会使其误解为单一参数。
另外,传递的$params 至少像这样写才成:
$params = array( 'ids', // 第一个参数为参数表类型串, 其中 i:整型 d:双精度 s:表示字符串 b:BLOG 1000, 200.00, 'string value' );
如此这般,就可以使用PHP的预处理SQL了。
相关推荐
PHP mysqli_stmt_init() 函数 初始化声明并返回 mysqli_stmt_prepare() 使用的对象: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect(localhost,root,123456,...
MYSQLI_USE_RESULT : MYSQLI_STORE_RESULT)); 在php manul上面对这两个参数是这样解释的。 复制代码 代码如下: Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior...
主要介绍了PHP mysqli_free_result()与mysqli_fetch_array()函数详解的相关资料,需要的朋友可以参考下
主要介绍了PHP中mysqli_affected_rows作用行数返回值,实例分析了普通模式与oop模式的用法,具有一定的参考借鉴价值,需要的朋友可以参考下
PHP mysqli_select_db() 函数 更改连接的默认数据库: 删除数据库 <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect("localhost","root","123456","codingdict"); if ...
本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之,这里就为大家分享一下mysql_connect()与mysqli_connect()的区别,需要的朋友可以参考下
PHP mysqli_ssl_set() 函数 实例 创建 SSL 连接: <?php $con=mysqli_init(); if (!$con) { die(mysqli_init failed); } mysqli_ssl_set($con,key.pem,cert.pem,cacert.pem,NULL,NULL); if (!mysqli_real_...
PHP mysqli_set_charset()函数 设置默认客户端字符集: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect("localhost","root","123456","codingdict"); if (mysqli_...
4.9 mysqli_fetch_array记录集获取.pptx
4.8 mysqli_fetch_assoc记录集获取.pdf
PHP mysqli_thread_id() 函数 返回当前连接的线程 ID,然后杀死连接: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect(localhost,root,123456,codingdict); if ...
PHP mysqli_stat() 函数 创建 SSL 连接: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect(localhost,root,123456,codingdict); if (mysqli_connect_errno($con)) { ...
本篇文章介绍了php中mysqli_get_server_version()方法的定义和用法,希望对正在学习MySQL和PHP的小伙伴有帮助! 定义和用法 mysqli_get_server_version() 函数将 MySQL 服务器版本作为整数返回。 MySQL 服务器版本将...
计算机后端-PHP视频教程. php与mysql基础-sql1-mysqli_connect.wmv
PHP mysqli_rollback() 函数 关闭自动提交,做一些查询,提交查询,然后回滚当前事务: <?php // 假定数据库用户名:root,密码:123456,数据库:codingdict $con=mysqli_connect(localhost,root,123456,...