这是我的代码:
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();
Run Code Online (Sandbox Code Playgroud)
我在最后一行得到错误:调用未定义的方法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 …Run Code Online (Sandbox Code Playgroud) 我完全被mySQLi搞糊涂了.虽然我多年来一直在使用过程式mysql调用,但我想习惯为它提供的db security/mySQL注入保护编写预备语句.我正在尝试编写一个简单的select语句(是的,我知道为此提供性能增强的程序调用).运行时,我得到所有的回声,直到我击中$result = $stmt->get_result();组件.对我来说这一切看起来都相当简单,但是我在mySQLi阅读手册后不知所措.任何想法为什么会失败?
*注意:这是一个测试环境,虽然没有对字符进行消毒/转义,但我只将有效内容传递给变量$ username和$ email.而且,我已经看了很多,以找到我的问题的解决方案.
function checkUsernameEmailAvailability($username, $email) {
//Instantiate mysqli connection
@$mysqli = new mysqli(C_HOST,C_USER,C_PASS,C_BASE) or die("Failed to connect to MySQL database...");
if (!$mysqli)
{
echo 'Error: Could not connect to database. Please try again later...';
exit;
} else {
echo 'mysqli created';
}
/* Create a prepared statement */
if($stmt = $mysqli -> prepare("SELECT username,email FROM tb_users WHERE username=? OR email=?")) {
echo '<br />MYSQLi: ';
/* Bind parameters s - string, b - …Run Code Online (Sandbox Code Playgroud)