返回行数组


Returning row array

我有一个数据库,我正在查询:"select email from users where access=1"。我收到的错误是

致命错误:在非对象上调用成员函数query(): $result = $mysqli->query($query);

我使用http://uk3.php.net/manual/en/mysqli.query.php作为参考,我看不到我在哪里查询过程和面向对象的PHP的混合物。

<?php
$db_host = "";
$db_user = "";
$db_pass = "";
$db_name = "";
/* OOP MYSQLI DATABASE CONNECTION */
$db = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}
/*LOGIN QUERY */
$query = "select email from users where access=1";
$result = $mysqli->query($query);
$email= $result->fetch_array(MYSQLI_NUM);    
if(isset($email[0])){    
    $query1="select id from user where email='".$email[0]."' and facebook=1";
    $result1 = $mysqli->query($query1);
    $email1= $result1->fetch_array(MYSQLI_NUM);  
    $userId=$admin[0];
}
?>
有人能解释一下吗?

您的MySQLi对象不是命名为$mysqli,而是命名为$db

$result = $mysqli->query($query);
应该

$result = $db->query($query);

也一样
if ($mysqli->connect_error) {
应该

if ($db->connect_error) {

编辑

只是一个旁注,你的第二个查询根本没有意义:)你刚刚从那个表中获取了一个电子邮件,然后你再次为那个电子邮件查询同一个表?

$email= $result->fetch_array(MYSQLI_NUM);    
if(isset($email[0])){    
$query1="select id from user where email='".$email[0]."' and facebook=1";

所有这些设置等同于你的第一个查询是

select id,email from users where access=1 and facebook=1

你不需要第二个查询那么