php – 类型定义字符串与绑定变量数不匹配
发布时间:2020-12-13 21:44:50 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 mysqli_stmt::bind_param(): Number of elements in type definition string doesn’t match number of bind variables????????????????????????????????????2个 我使用我为所有项目构建的动态数据库类.刚刚开始一个新的,课程给我一个打嗝.这是
参见英文答案 >
mysqli_stmt::bind_param(): Number of elements in type definition string doesn’t match number of bind variables????????????????????????????????????2个
我使用我为所有项目构建的动态数据库类.刚刚开始一个新的,课程给我一个打嗝.这是我的代码,而不是细节.但我通过最少的代码重新创建了错误. function vref($arr) { if (strnatcmp(phpversion(),'5.3') >= 0) {//Reference is required for PHP 5.3+ $refs = array(); foreach($arr as $key => $value) $refs[$key] = &$arr[$key]; return $refs; } return $arr; } $bind = 's,i,s,s'; $reward = ( $data['reward'] ) ? $data['reward'] : '0'; $special = '0'; $icon = '0'; $mastery = ( @$data['mastery'] ) ? 'Yes' : 'No'; $added = time(); settype($added,'string') $arr = array( $bind,$data['name'],intval($data['cost']),intval($data['per']),intval($data['serv']),intval($data['earns']),intval($data['cp']),$data['cookTime'],$reward,$special,$icon,intval($data['type']),$mastery,$added ); $db = new mysqli(...); $stmt = $db2->prepare('INSERT INTO recipe2 ( `name`,cost,perserv,servings,earns,cp,cooktime,`unlock`,special,icon,`type`,options,added) VALUES (?,?,?) '); call_user_func_array( array( $stmt,'bind_param' ),vref($arr) ); // var_dump($arr) array(14) { [0]=> string(25) "s,s" [1]=> string(18) "Bacon Cheeseburger" [2]=> int(15) [3]=> int(4) [4]=> int(13) [5]=> int(56) [6]=> int(6) [7]=> string(2) "5m" [8]=> string(1) "0" [9]=> string(1) "0" [10]=>int(0) [11]=>int(0) [12]=>string(2) "No" [13]=>string(10) "1325300795" } // Database Column listing name varchar(255) cost int(10) perserv int(5) servings int(10) earns int(10) cp int(10) cooktime varchar(11) unlock varchar(255) special varchar(255) icon varchar(255) type int(5) options varchar(255) added varchar(12) 错误:警告:mysqli_stmt :: bind_param():类型定义字符串中的元素数与绑定变量数不匹配 在任何人只是简单地说之前,计算你的变量.我有.可能现在超过50次.可不是闹着玩的.在一小时前,我开始使用变量,而不是将直接数据放入其中. vref()只是将数组中的所有项目作为引用变量传递.我已经了解到参考文献不能掉以轻心.嘿.但我仍然无法弄明白这一点,而且它的结果令人沮丧. 我有13列.将14个参数传递给bind_param(). 解决方法
简单的错误……呃.我讨厌那个.
Not my credit.
$bind = 'siiiiissssiss'; // No commas (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |