Вот моя функция:
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>
Вот как я это делаю …
Кажется, что ваш запрос не удался. Потому что в этом случае 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?');