Warning: mysqli_stmt::bind_param(): Number of elements in type definition string doesn‘t match numbe

文章针对PHP7.0以上版本,介绍mysqli的prepare函数绑定参数时,在bind_param函数执行中出现的问题。阐述了bind_param函数的用法,其语法为bind_param('参数的数据类型',参数变量),并说明了参数类型及数量匹配的要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        这篇文章呐,是针对PHP7.0版本以上的对mysqli 的 prepare函数,来绑定定参数的,希望文章能够帮助大家,这个问题也是我在写脚本中遇到的。        

        这个问题主要是perpare函数在执行过程中,在执行bind_param函数中出现的问题。

 代码如下:


            $ftype = $proObj->getType();
            $plan = $proObj->getPlan();
            $fID = $proObj->getfId();
            $sql = "UPDATE obj SET  ftype=?,plan=?,built_up=? WHERE fID =? ";
            $stmt = $this ->mysqli ->prepare($sql);
            $stmt ->bind_param('sds',$fname,$ftype,$plan,$built_up,$ftarget,$fID); 
            $stmt ->execute();

        因为在bind_param 函数必须传入参数,来绑定传入的值,可能是大家不熟悉bind_param 函数的用法。下面我就介绍一下bind_param 函数用法。

语法如下:

bind_param('参数的数据类型',参数变量),bind_param('sss',lastname,$name)

        前面的参数有四种类型:

i - integer(整型)

d - double(双精度浮点型)

s - string(字符串)

b - BLOB(布尔值)

所以我们的一个问题就可以的解决了  ,就是要参数的数据类型的量要等于后面的变量或参数的量。

         直白一点说的话就是 1 框的字符串的字母数和要等于后面的一个变量数和。这里的字符串字母只能是上面说的四种类型。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值