Работа с удаленным сервером mysql
Доброго времени суток!
Вот код подключения к удаленной бд
Все здорово подключается! SELECT отрабатывает и выдает 753 записи(в бд столько же), все ок
Но вот пытаюсь работать так:
Fatal error: Call to a member function get() on a non-object in
Сниппет вызывается на странице сайта.
Что-то еще нужно подключить или подковырять?
Аль все так на чистом MySQL работать придется?
Вот код подключения к удаленной бд
<?php
ini_set("display_errors",1);
error_reporting(E_ALL);
// Задаем подключения к сторонней базе данных:
$host = 'text'; // — хост.
$username = 'text'; // — имя пользователя.
$password = 'text'; // — пароль пользователя.
$databasename = 'text'; // — имя базы данных.
$port = 3306; // — номер порта.
$charset = 'utf-8'; // — кодировка.
// Соединяемся с базой данных:
$dsn = "mysql:host=$host;dbname=$databasename;port=$port;charset=$charset";
$xpdo = new xPDO($dsn, $username, $password);
// Проверяем успешность подключения:
echo $o = ($xpdo->connect()) ? 'Подключились…' : 'Не удалось подключиться!';
$results = $xpdo->query("SELECT * FROM modx_po_site_content");
$kolichestvo_zapisei = $results->rowCount();
echo 'Обнаружено записей: '. $kolichestvo_zapisei;
Все здорово подключается! SELECT отрабатывает и выдает 753 записи(в бд столько же), все ок
Но вот пытаюсь работать так:
$res = $xpdo->getObject('modResource',1);
$output = $res->get('pagetitle');
return $output;
ошибкаFatal error: Call to a member function get() on a non-object in
Сниппет вызывается на странице сайта.
Что-то еще нужно подключить или подковырять?
Аль все так на чистом MySQL работать придется?
Комментарии: 4
?
Кажется, ты забыл указать table_prefix:
$config_options = array(
xPDO::OPT_TABLE_PREFIX => 'modx_'
);
$xpdo = new xPDO($database_dsn, $database_user, $database_password, $config_options);
Думал про него т.к. даже исходя из логики, что необходимо указывать его.
Но это не помогло.
попробовал другой код
Но это не помогло.
попробовал другой код
$q = $xpdo->newQuery('modResource');
$q->prepare();
$q->stmt->execute();
$results = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($results);
foreach($results as $result){
echo $result['modResource_pagetitle'];
}
ошибку не выдает, но все же results пустой
Ребят подскажите, как правильно работать с подключение к сторонней бд
Далее, делаю такой код:
Но хотелось бы работать с обьектами, т.е. так:
Запрос распечатываю вижу такие строчки:
Подскажите пожалуйста, что надо сделать?
// Соединяемся с базой данных:
$dsn = "mysql:host=$host;dbname=$databasename;port=$port;charset=$charset";
$config_options = array(xPDO::OPT_TABLE_PREFIX => 'modx_');
$xpdoH = new xPDO($dsn, $username, $password,$config_options,[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION]);
// Проверяем успешность подключения:
if($xpdoH->connect())
{
echo '<div class="alert alert-success">Подключение к БД - <strong>Успешно</strong></div>';
}else{
echo '<div class="alert alert-danger">Подключение к БД - <strong>НЕ Удалось</strong></div>';
return;
}
Данный код обрабатывает норм, подключение успешно.Далее, делаю такой код:
$h = $xpdoH->query("SELECT * FROM modx_site_content WHERE parent = 2");
$res_hl = $h->fetchAll(PDO::FETCH_ASSOC);
Выводит все норм.Но хотелось бы работать с обьектами, т.е. так:
$hr = $xpdoH->newQuery('modResource');
$hr->select(array('modResource.*'));
$hr->prepare();
$hr->stmt->execute();
$res_hr = $hr->stmt->fetchAll(PDO::FETCH_ASSOC);
Но этот код выдает пустой массив…Запрос распечатываю вижу такие строчки:
[sql] => SELECT modResource.* FROM AS `modResource`
Т.е. после FROM не указана таблицаПодскажите пожалуйста, что надо сделать?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.