Intereting Posts
Данные JQuery Mobile POST пустые в $ _POST Может ли кто-нибудь помочь мне разобраться в значении этого сообщения об ошибке php? Различные файлы макетов для разных контроллеров Чтобы понять заголовок PHP () Вызвать URL с помощью wget и вернуть ERRORLEVEL в зависимости от содержимого URL-адреса POST без метода формы (PHP) Неверная подпись подписи JWT PHP Нельзя вызвать статический метод из класса как имя переменной? Проблема создания лучшего случайного алгоритма – ежедневный спред Поддержка PDO для нескольких запросов (PDO_MYSQL, PDO_MYSQLND) Laravel 4 Проверка Ajax для включения XMLHttpRequest (из Magnific Popup) Сортировка многомерного массива по размеру его подматрицы Это регулярное выражение отключает последнее слово в строке, хотя strlen находится в допустимом диапазоне Как выполнить необработанные запросы с помощью Laravel 5.1? Функция масштабирования / изменения размера изображения с использованием библиотеки GD

Вызов функции-члена fetch_assoc () для не-объекта

Вот моя функция:

function get_fname($un){ $registerquery = $this->conn->query("SELECT f_name FROM tz_members WHERE usr='".$un."'"); while ($row = $registerquery->fetch_assoc()) { return $fname = $row[$un]; } } 

Редактировать:

Я решил ответить на собственный вопрос, потому что у него есть редактор.

@Mark Baker:

 <?php require_once 'Mysql.php'; $mysql = new Mysql(); ?> <html> <head> </head> <body> <h4><?php echo $mysql->get_fname("joann"); ?></h4> </body> </html> 

Вот как я это делаю …

Solutions Collecting From Web of "Вызов функции-члена fetch_assoc () для не-объекта"

Кажется, что ваш запрос не удался. Потому что в этом случае query возвращает false . Поэтому попробуйте следующее:

 $registerquery = $this->conn->query("SELECT f_name FROM tz_members WHERE usr='".$un."'"); if ($registerquery) { while ($row = $registerquery->fetch_assoc()) { return $fname = $row[$un]; } } 

Ошибка может быть вызвана синтаксической ошибкой в ​​вашем запросе, когда $un содержит символы, которые нарушают объявление строки (например, ' или»). Вы должны использовать MySQLi :: real_escape_string чтобы избежать этих символов, чтобы предотвратить это.

Кроме того, функция может возвращать значение только один раз. Таким образом, while будет прервано после первого ряда.

$ fname = $ row [$ un]; присваивает значение $ row [$ un] переменной $ fname, а затем возвращает результат. Бессмысленно делать это присвоение $ fname, потому что $ fname – это просто локальная переменная внутри функции …. если она определена как глобальная, то это не хорошая практика программирования.

Если echo $ mysql-> get_fname ("joann") – это строка, в которой вы вызываете функцию get_fname (), то как вы устанавливаете $ mysql?

И что, по вашему мнению, произойдет, если запрос базы данных не найдет допустимого результата для запроса?

 while ($row = fetch_assoc($registerquery)) { return $fname = $row[$un]; } } 

Возможно ли, что вы забыли указать имя таблицы в соединении?

$ conn = new mysqli ('localhost', 'root', 'password', 'ANY VALUE HERE?');