mysqli bind_param中的动态变量绑定 [英] dynamic variables binding in mysqli bind_param

查看:65
本文介绍了mysqli bind_param中的动态变量绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试下面的代码时,它会警告我

when i try to below code it give me a warning

mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables

$stmt = $mysqli->prepare('SELECT * FROM users WHERE lname = ? AND fname = ?');
    $type = "ss";
    $param = array("Maq","bool");
    $params[] = &$type;
    $params[] = &$param;

    call_user_func_array( array($stmt, 'bind_param'), $params );

我真的不知道为什么会这样,我在stackoverflow中读了很多相同的标题问题,但是有些问题用逗号分隔类型或需要更多类型,但就我而言,我认为这是正确的,但是为什么我不断收到警告?

i really don't know why its happening i read a lot of same title questions in stackoverflow but some has comma separated types or need more type but in my case i think its proper but why i am keep getting warnings?

推荐答案

$stmt = $mysqli->prepare('SELECT * FROM users WHERE lname = ? AND fname = ?');
$stmt->bind_param('ss', $param[0], $param[1]);
$stmt->execute();

//other version
$stmt = $mysqli->prepare('SELECT * FROM users WHERE lname = ? AND fname = ?');
$type = "ss";
$names = array("Maq", "bool");
$params = array(&$type, &$names[0], &$names[1]);

call_user_func_array(array($stmt, 'bind_param'), $params);

这篇关于mysqli bind_param中的动态变量绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆