[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: В чем специфика соединения с базой данных?
Владимир55
Сайт работает нормально, но в логах от открытия каждой страницы появляется запись типа:

Цитата
"2016-04-13 10:51:03",undefined,"<strong>Undefined error:</strong> mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead в файле /home/public_html/admin/db-config.php (строка 12)
Стек вызовов:
Файл: admin/db-config.php, строка 12,


Похоже, что база просит использовать соединение на основе PDO.

В файле db-config.php такой код:

// Параметры соединения
$dblocation = "localhost";
$dbname = "2_baza";
$dbuser = "2_baza";
$dbpasswd = "gKP3";

// Соединяемся с сервером базы данных
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);

// $dbcnx = new PDO("mysql:host=$dblocation;dbname=$dbname", $dbuser, $dbpasswd);

if(!$dbcnx) return;

// Выбираем базу данных
if(!@mysql_select_db($dbname,$dbcnx)) exit();

// Устанавливаем кодировку:
// для соединения с базой

@mysql_query ("SET NAMES `utf8`");


Закомментирована строка, содержащая мою неудачную попытку использовать PDO, которая систему выводит из строя.

Используется РНР версии 5.6.

Как ни удивительно, техподдержка хостинга, которая всегда легко решала подобные вопросы, отвечает "Не знаю". И как решение предлагает только перейти на версию 5.2.

Как мне казалось, избавиться от этих сообщений в логах будет нетрудно, а это оказалось такой проблемой...

Можете ли объяснить, в чем тут дело?
T1grOK
Цитата (Владимир55 @ 13.04.2016 - 11:10)
Закомментирована строка, содержащая мою неудачную попытку использовать PDO, которая систему выводит из строя.

Если начинаете использовать PDO, то в соответствии с его API должны быть изменены все вызовы к БД.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Владимир55
Спасибо, я уже нечто такое начал предполагать.

То есть, если начать использовать PDO, то вот такой запрос невозможен?

mysql_query("INSERT INTO `input_information` (`url`, `user`)
VALUES ('
$url', '$user')");
echo mysql_errno()." 152 : $time ".mysql_error()."<BR>";


Интересно, а как это должно выглядеть?
T1grOK
Цитата (Владимир55 @ 13.04.2016 - 11:51)
То есть, если начать использовать PDO, то вот такой запрос невозможен?

Именно.


_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
bestxp
альтенатива ТС mysqli перейти и работать с ним в функциональном стиле, тогда что-то будет ближе

у пдо объектная модель и свой API который не совместим с другими, как собственно и mysqli и mysql
Владимир55
Я посмотрел в сети, что такое mysqli. Но, конечно ж, сразу всего не ухватишь... Поэтому остаются два главных вопроса:

1. При переходе на mysqli код останется работоспособным? Или, все же, придется что-то менять?

2. Как перейти на mysqli? Искать хостера, который предоставляет такую базу данных?
twin
Цитата (Владимир55 @ 13.04.2016 - 12:21)
2. Как перейти на mysqli? Искать хостера, который предоставляет такую базу данных?

Нет, не нужно искать. Он у всех есть. Переделать готовый проект можно этой утилиткой, если не хочется лишних заморочек.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Владимир55
Цитата (twin @ 13.04.2016 - 13:28)
Нет, не нужно искать. Он у всех есть.

То есть, я просто использую в коде операторы, свойственные mysqli, и таким образом вызывается интерпретатор mysqli.

Так?

Гипотетически, можно на одном сайте использовать и mysql, и mysqli.
В принципе это возможно?

Кстати, а в mysqli тоже работает PHPMyAdmin?
twin
mysqli это не СУБД. Это драйвер. И пыхадмин к нему не имеет никакого отношения.

Использовать два на одном сайте гипотетически можно, но это как сидеть на двух стульях. Причем один из них расшатаный.

В коде меняются не операторы, а функции.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
VELIK505
Цитата (twin @ 13.04.2016 - 13:28)
Нет, не нужно искать. Он у всех есть. Переделать готовый проект можно этой утилиткой, если не хочется лишних заморочек.

У меня не запускается даже от имени администратора Винда 7.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.