这个问题在这里已有答案:
谁能帮助我从mysql改为mysqli?我是新手 . 这里是错误:致命错误:未捕获错误:调用未定义函数mysql_query()
我的代码在这里:
<?php
//require_once('../includes/config.php');包括( 'class.password.php');
class用户扩展密码{
private $db=0;
function __construct($db){
parent::__construct();
$this->_db = $db;
}
public function is_logged_in(){
if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true){
return true;
}
}
private function get_user_hash($username){
try {
$dbd = mysqli_connect('localhost','xxxx','xxxx');
mysqli_select_db('xxxx',$dbd);
$r = mysql_query("SELECT password,username,role FROM user WHERE username='".$username."' LIMIT 1",$db);
return $r;$row['password'];
} catch(PDOException $e) {
echo '<p class="error">'.$e->getMessage().'</p>';
}
}
公共函数登录($ username,$ password){$ q = mysql_query(“SELECT * FROM user WHERE username ='” . $ username . “'AND password ='” . md5($ password) . “'”,$ this - > _分贝); $ NUM = mysql_num_rows($ Q); if($ num> 0){$ row = mysql_fetch_array($ q,MYSQL_ASSOC); if($ row ['role'] ==“admin”){$ _SESSION ['role'] =“admin”; $ _SESSION [ '用户名'] = $行[ '用户名']; $ _SESSION [ 'bank_account_number'] = $行[ 'bank_account_number']; $ _SESSION [ 'PHONE_NUMBER'] = $行[ 'PHONE_NUMBER']; $ _SESSION [ '的loggedIn'] = TRUE; } else {$ _SESSION ['role'] ='非管理员'; $ _SESSION [ '用户名'] = $行[ '用户名']; $ _SESSION [ 'bank_account_number'] = $行[ 'bank_account_number']; $ _SESSION [ 'PHONE_NUMBER'] = $行[ 'PHONE_NUMBER']; $ _SESSION [ '的loggedIn'] = TRUE; } return true; } else {return false; }}
public function logout(){
session_destroy();
}
}
?>
1 回答
你混合所有3个apis,看起来你包括mysqli而不是其他2,这就是为什么它告诉你mysql_query是未定义的 . 应该是mysqli_query . 当我认为mysqli甚至没有抛出异常时你也在使用pdo异常,但它确实有mysqli_report()用于错误检查 . 阅读文档 .