Задался таким вот вопросом. Попробую описать.
Сначала примерный код:
class mysql {
function __construct($db_config) {
// Проверка $db_config и connect к базе
}
private function connect() {
// Подключение к базе
}
public function query() {
// запрос к базе, после всех необходимых сравнений у нас имеется переменная $this->query_id где либо false в случае неудачи или PDOStatement объект для дальнейшей работы
return $this->query_id;
}
}
$db = new mysql($db_config);
$db->query("select ....");
Хотелось бы чтобы функция query возвращала новый класс в котором будут дополнительные функции, например: $db->query('...')->fetch();
Собственно в чем загвоздка. Хотелось бы чтобы по запросу $db->query('...') отдавалась переменная $this->query_id. Так если возвращать объект, имеется только данные по объекту.
Такое вообще возможно в реализации?
Таким вот $db->query('...') образом мне хотелось бы получать и объект PDO, а в дальнейшем уже работать с ним за пределами класса, но чтобы когда обращаюсь например: $db->query('...')->fetch(); и когда $db->query('...') отдает false (то есть переменная $this->query_id) чтобы ->fetch() естественно тоже отдавал false. То есть в другом классе подключенном выше классе я мог бы прочитать $this->query_id и отдать false или ассоциативный массив.
Заморочился чет =)
В первую очередь, анонимные классы тут не при чем.
Если хочется расширить функциональность PDOStatement, то надо писать свой класс, вполне себе именованный, который дублирует его функциональность и добавляет эту непонятно зачем нужную переменную
class myStatement($stmt, $query_id)
{
public function __construct($stmt, $query_id)
{
$this->query_id = $query_id;
$this->stmt = $stmt;
}
public function fetch($params)
{
return $stmt->fetch(...$params);
}
}
и отдаваь уже его
public function query() {
// запрос к базе
return new myStatement($stmt, $this->query_id);
}
соответственно, если хотим получить эту странную перменную, то
$db->query('...')->query_id;
если фетч, то
$db->query('...')->fetch();
если все вместе, то
$mystmt = $db->query('...');
$mystmt->query_id;
$mystmt->fetch();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Забиндить невозможно, а аналогов mysql_real_escape_string() у PDO нетБудет ли правильно использовать PDO::quote() ?
Есть главная папка с проектом в которой находится папка конфига, в конфиге есть php файл, в котором я ищу абсолютный путь к этой папке так:
в парсере есть функция file_get_html, если в нее передать адрес
Нужно получить выборку данных из гугл таблицы по дате, все даты расположены в порядке убывания в одной колонке