Итак, я перешел с mysql_ * на PDO сегодня и пытаюсь запустить его, но как-то получаю нулевые результаты.PDO не даст результатов
моего заявление выглядит следующим образом:
$serverConnector = new ServerConnector();
$db = $serverConnector->connectToServer();
$stmt = $db->prepare("SELECT * FROM `" . TABLE_USERS . "` WHERE `" . USER_NICKNAME . "` =:user_nickname OR `" . USER_EMAIL . "` =:user_email;");
$stmt->execute(array(':user_nickname' => "'".$name_or_email."'", ':user_email' => "'".$name_or_email."'"));
while ($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
$this->id = $row[USER_ID];
$this->joined = $row[USER_JOINED];
...
}
$db = null;
Я попытался выполнение этого заявления как чистый SQL на Xampp. Работал там. Однако здесь не работает. Я трипл проверил все параметры im, проходящие, и все правильно. Как-то программа вообще не войдет в цикл while. ServerConnector просто подключается к базе данных через PDO и возвращает объект базы данных PDO в $ db.
Благодаря
EDIT: Ну, я использую новейшую Xampp с PHP 5.4.7. PDO Должен быть включен по умолчанию. Проверял файл php.ini сам, и он также был включен там
EDIT: Вот мой класс ServerConnector. Включена ошибка. Хотя я не буду получать любые:/
class ServerConnector {
public function connectToServer(){
$db = new PDO('mysql:host=' . DATABASE_HOST . ';dbname=' . DATABASE_NAME . ';charset=UTF-8',
DATABASE_USERNAME,
DATABASE_PASSWORD,
array(PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
return $db;
}
}
Вы не должны включать конечную полуточку в ваш оператор SQL. – crush
Хорошо. думал, что это «хороший стиль». Не делает трюк, хотя – JustBasti
@crush, правда? У меня есть привычка всегда заканчивать их с помощью двоеточия. – ficuscr