У меня есть эта проблема, я не могу понять, я запрашиваю БД так:Итерация PDO запросов с PHP и MySQL
$stmt = $this->pdo->prepare('SELECT customer_name FROM active_users WHERE a_id= ?');
$stmt->execute(array($a_id));
$c_name = $stmt->fetch(PDO::FETCH_OBJ);
API::writeToLog('CMD=leave , Customer_Name = ' . $c_name->customer_name, $customer_name);
Это: $ c_name-> customer_name дает следующее сообщение об ошибке:
Notice: Trying to get property of non-object
Как я могу перебирать свою базу данных и каково различие между fetch и fetchAll? который я должен использовать?
Это DB схема:
+---------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| a_id | varchar(40) | NO | PRI | NULL | |
| token | varchar(64) | NO | | NULL | |
| nick | varchar(255) | NO | | NULL | |
| ip | varchar(32) | NO | | NULL | |
| customer_name | varchar(255) | YES | | NULL | |
+---------------+--------------+------+-----+---------+-------+
спасибо!
EDIT: исправлена опечатка ..
+1 всегда хорошая практика, чтобы проверить возвращаемые значения присваивания –
при использовании fetchВсе вот так: $ messages = $ stmt-> fet Chall (PDO :: FETCH_OBJ); следует ли использовать «if» для проверки возвращаемого значения? если так, то итерация по объектам pdo будет следующей? : foreach ($ messages as $ message) {...} – Li3ro
@ Li3ro Вам просто нужно перебрать его. – xdazz