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

我正在使用以下代码 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 行“

标签: php mysql


【解决方案1】:

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

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

【讨论】:

  • 用于显示正确的问题而不是更改查询
猜你喜欢
  • 2015-02-02
  • 2014-06-19
  • 1970-01-01
  • 2011-05-28
  • 2015-10-24
  • 2013-09-26
  • 1970-01-01
  • 2013-11-19
相关资源
最近更新 更多