Php 对非对象调用成员函数prepare(),即使在声明全局函数之后
我的文件中有12个函数,在非对象上调用成员函数prepare()时出现错误 这就是问题出现的原因Php 对非对象调用成员函数prepare(),即使在声明全局函数之后,php,pdo,connection,Php,Pdo,Connection,我的文件中有12个函数,在非对象上调用成员函数prepare()时出现错误 这就是问题出现的原因 <?php function getUsers() {//returns an array of users global $db; $list = array(); $stmt = $db->prepare('SELECT username FROM user_info'); $users = $stmt->fetch(PDO::FETC
<?php
function getUsers() {//returns an array of users
global $db;
$list = array();
$stmt = $db->prepare('SELECT username FROM user_info');
$users = $stmt->fetch(PDO::FETCH_ASSOC);
if (is_array($users) || is_object($users))
{
foreach ($users as $user) {
array_push($list, $user[0]);
}return $list;
}
}
$users = getUsers();
function getImageURL($user) {
$stmt = $db->prepare('SELECT propic FROM user_info WHERE username=:username');
$stmt->execute(array(':username' => $user));
$source = $stmt->fetch(PDO::FETCH_ASSOC);
return $source;
}
终于解决了
function getUsers() {//returns an array of users
global $db;
$list = array();
$stmt = $db->prepare('SELECT username FROM user_info');
$users = $stmt->fetch(PDO::FETCH_ASSOC);
if (is_array($users) || is_object($users)) {
foreach ($users as $user) {
array_push($list, $user[0]);
}return $list;
}
}
$users = getUsers();
function getImageURL($user) {
global $db;
$stmt = $db->prepare('SELECT propic FROM user_info WHERE username=:username');
$stmt->execute(array(':username' => $user));
$source = $stmt->fetch(PDO::FETCH_ASSOC);
return $source;
}
只需确保$db
是一个PDO实例,最好只在函数参数中注入db实例,而不是已经注入$user=new user($db)代码>在构造函数中?也许您应该使用$this->db
或User
中的某种属性在->getUser()
方法中使用,而不是使用global$db
。我们只能猜测类User
anyways@Ghost那么解决方案是什么呢?错误消息应该包含文件名和lne编号。这是否指向您发布的代码?function getUsers()
与您发布的其他代码有何关联?@VolkerK yes致命错误:在第6行的C:\Users\sanoj\Documents\NetBeansProjects\PDO friends 2\userData.php中对非对象调用成员函数prepare()
function getUsers() {//returns an array of users
global $db;
$list = array();
$stmt = $db->prepare('SELECT username FROM user_info');
$users = $stmt->fetch(PDO::FETCH_ASSOC);
if (is_array($users) || is_object($users)) {
foreach ($users as $user) {
array_push($list, $user[0]);
}return $list;
}
}
$users = getUsers();
function getImageURL($user) {
global $db;
$stmt = $db->prepare('SELECT propic FROM user_info WHERE username=:username');
$stmt->execute(array(':username' => $user));
$source = $stmt->fetch(PDO::FETCH_ASSOC);
return $source;
}