在 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()的主要内容,如果未能解决你的问题,请参考以下文章
wordpress 在functions.php第5行的非对象上调用成员函数add_section()
PHP 致命错误:在第 45 行的 admin\includes\html\database.class.php 中的非对象上调用成员函数 prepare()