我有一个数据库,我正在查询:"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
你不需要第二个查询那么