在 SELECTION 语句的非对象上调用成员函数 bind_param()

Posted

技术标签:

【中文标题】在 SELECTION 语句的非对象上调用成员函数 bind_param()【英文标题】:Call to a member function bind_param() on a non-object on SELECTION statement 【发布时间】:2015-04-09 09:45:29 【问题描述】:

我正在使用以下代码 sn-p 从学生表中选择行数。但它显示错误“致命错误:在非对象上调用成员函数 bind_param()”。在我的表中,“stacyear”是 VARCHAR,“courseid”是 TINY INT。

$stmt = $mysqli->prepare("SELECT count (*) FROM students WHERE stacyear = ? and courseid = ?");
$stmt->bind_param('si', $acyear, $courseid); 
$stmt->execute();    
$stmt->store_result();
$stmt->bind_result($utype);
$stmt->fetch();

【问题讨论】:

你的courseid 是字符串,它必须是$courseid 仍然显示同样的错误 准备好后再放这个:if(!$stmt) exit($mysqli->error); 我没有提到我刚刚发布你的错字的答案.. 它显示“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 '* 附近使用的正确语法)来自学生 WHERE stacyear = ? 和 courseid = ? '在第 1 行“ 【参考方案1】:

COUNT(*) 之间不能有空格。改为

$stmt = $mysqli->prepare("SELECT count(*) FROM students WHERE stacyear = ? and courseid = ?");

【讨论】:

用于显示正确的问题而不是更改查询

以上是关于在 SELECTION 语句的非对象上调用成员函数 bind_param()的主要内容,如果未能解决你的问题,请参考以下文章