这是我的代码:
include 'conn.php'; $conn = new Connection(); $query = 'SELECT EmailVerified, Blocked FROM users WHERE Email = ? AND SLA = ? AND `Password` = ?'; $stmt = $conn->mysqli->prepare($query); $stmt->bind_param('sss', $_POST['EmailID'], $_POST['SLA'], $_POST['Password']); $stmt->execute(); $result = $stmt->get_result();
我在最后一行收到以下错误: 调用未定义的方法mysqli_stmt :: get_result()
这是conn.php的代码:
define('SERVER', 'localhost'); define('USER', 'root'); define('PASS', 'xxxx'); define('DB', 'xxxx'); class Connection{ /** * @var Resource */ var $mysqli = null; function __construct(){ try{ if(!$this->mysqli){ $this->mysqli = new MySQLi(SERVER, USER, PASS, DB); if(!$this->mysqli) throw new Exception('Could not create connection using MySQLi', 'NO_CONNECTION'); } } catch(Exception $ex){ echo "ERROR: ".$e->getMessage(); } } }
如果我写这行:
if(!stmt) echo 'Statement prepared'; else echo 'Statement NOT prepared';
打印 “未准备的声明” 。如果我直接在IDE中运行查询替换?用值标记,效果很好。请注意,$ conn对象在项目中的其他查询中可以正常工作。
请帮忙.......
请阅读此方法的用户说明:
http://php.net/manual/zh/mysqli-stmt.get- result.php
它需要mysqlnd驱动程序…如果未在您的网站空间上安装它,则必须使用BIND_RESULT&FETCH!
https://secure.php.net/manual/zh/mysqli-stmt.bind- result.php
https://secure.php.net/manual/zh/mysqli- stmt.fetch.php