php 写入数据库时Call to a member function bind_param() on a non-object,急,求解

$sql="insertintouser(username,password,question,answer,sex,birth,Email,phonenum,randc... $sql="insert into user (username,password,question,answer,sex,birth,Email,phonenum,randcode,level) values(?,?,?,?,?,?,?,?,?,?)";
$regin->mysqli_stmt=$regin->mysqli->prepare($sql);
$regin->mysqli_stmt->bind_param("sssssssssi",$username,$password,$question,$answer,$sex,$birth,$email,$phonenum,$randcode,$level);
看了一个下无了就是早不到原因
$regin->mysqli_stmt->bind_param("ssssss....这一行就是报错,核对了数目,根本就没错,逗号也没漏
Call to a member function bind_param() on a non-object

而且用MySQL 5.6 Command Line Client - Unicode写入成功了
insert into user (username,password,question,answer,sex,birth,Email,phonenum,randcode,level) values('test','test','test','test','test','2014-7-17','test','test','test',1)
其它的都是text型,只有birth是date和level是int型的
是我之前进行了读取,导致问题出现了在读取数据使用完成后再使用
$regin->mysqli_stmt->free_result();
进行释放,就可以了
展开
 我来答
lee也夏天
2017-07-19 · TA获得超过222个赞
知道小有建树答主
回答量:250
采纳率:66%
帮助的人:133万
展开全部
依 Call to a member function bind_param() on a non-object 是因为$regin>mysqli_stmt 这个对象错误了, 也就是$regin->mysqli->prepare($sql);在这一句返回的不是statement对象, 而是prepare时发生错误返回了false, 所以下面那句就会接着出错, 你可以试试debug输出下执行prepare时发生的错误, 可以用mysqli_error($link)之类的方法输出错误的原因, $link 就是你连接mysqli的资源, 或者一般有数据库错误之类的会有日志记录, 看看你服务器的mysql有没有开启日志记录, 然后找到日志里面查看数据库报错原因
1261168449
2014-07-17 · 超过10用户采纳过TA的回答
知道答主
回答量:70
采纳率:28%
帮助的人:17.8万
展开全部
对象里没有bind_param方法。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
怀老师小课堂
2017-06-26 · TA获得超过674个赞
知道小有建树答主
回答量:1017
采纳率:80%
帮助的人:257万
展开全部
你这个问题是没有实例化对象,或者是调用了一个不存在的类。具体原因需要贴出源码,我来为你指明。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式