[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Переход на mysqli
andrey888
Добрый день всем.
Переходим с MySQL на MySQLi
Буду рад услышать от тех кто уже "ТАМ" ) основные моменты на которые стоит обратить внимание при переходе. Думаю тема пригодится многим ищущим это на просторах Инета.
Примеры следующие.
1. Добавление в запросы буковки i ( mysql_query - > mysqli_query , mysql_num_rows -> mysqli_num_rows , mysql_fetch_assoc - > mysqli_fetch_assoc и др.)
2. Разница в постановке переменных ( mysql_query($sql, $link) - > mysqli_query($link, $sql) )
3. Функция mysqli_real_escape_string($link, $string); - Теперь эта функция требует так же переменной подключения к базе в отличие от старой mysql_real_escape_string($string) , где мы передавали только переменную которую нужно обработать.
4. ...
Добавляйте то, на что по вашему следует обратить внимание при переводе приложения на mysqli
Респект всем.

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Invis1ble
Добавляю: стоит обратить внимание на ссылочку http://php.net где все давно подробно разжевано wink.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

twin
Из часто используемых

mysql_result() не имеет аналога

mysqli_error()
mysqli_insert_id()
mysqli_affected_rows()

Тоже теперь обязательно требуют линку. А вообще Invis1ble прав. Только ссылку чуть подробннее могу предложить.
А можно процесс автоматизировать.

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

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

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

user posted image
andrey888
Invis1ble - прочитано . Ну так если есть мануалы, может и форумы вообще не нужны ? ))
Я к тому что запомнить все одним разом сложно , мы человеки все таки и не машины. Поэтому те кто осуществлял такой переход наверное обращали внимание на какие то особо важные моменты. Вот чтоб другие могли на это обратить внимание первым делом, такой топик не помешает. (имхо)
twin - спасибо.


_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
VELIK505
Не надо дописывать переменные соединений с базой. Надо использовать просто объектно ориентировочный интерфейс а не базовый и всё будет чики пуки biggrin.gif
Lenarfate
есть mysqli_result. http://php.net/manual/ru/class.mysqli-result.php
только в виде класса
twin
VELIK505
Тут вопрос о переводе с mysql на msqli, причем тут объектный интерфейс?

Lenarfate
Я же написал нет аналога функции. smile.gif


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

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

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

user posted image
VELIK505
Цитата (twin @ 24.12.2012 - 16:35)
VELIK505
Тут вопрос о переводе с mysql на msqli, причем тут объектный интерфейс?

Ну так он пишет что соединение с базой надо функциям передавать $link
Это токо в том случае если на базовом интерфейсе писать. А я говорю что не надо так делать надо на ООИ учиться сразу чтобы не заниматься мышиной вознёй.
А вот аналога mysql_result в mysqli нету и вправду.
twin
Да понятно что учиться. А если это рабочий проект? Или одну буковку добавить, или полностью менять принцип. Есть же разница.

Вот же недвузначно написано:
Цитата
на что по вашему следует обратить внимание при переводе приложения на mysqli


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

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

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

user posted image
inpost
andrey888
Пишешь оболочку, через неё и работаешь.
mysqlQuery -> функция, внутри пишешь по стандартам php.net.
mysqlEscapeString - так же.

Учесть, что на процедурке не заканчивается свет, у меня пишется так:
$res->num_rows , $res->fetch_assoc() .

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

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
andrey888
VELIK505
Цитата
Не надо дописывать переменные соединений с базой. Надо использовать просто объектно ориентировочный интерфейс а не базовый и всё будет чики пуки

+
Цитата
Ну так он пишет что соединение с базой надо функциям передавать $link
Это токо в том случае если на базовом интерфейсе писать. А я говорю что не надо так делать надо на ООИ учиться сразу чтобы не заниматься мышиной вознёй.

У нас немного разные взгляды )) предпочитаю Процедурку при всех плюсах объектно-ориентированного стиля. Тут был жуткий ХолиВар ) по этому вопросу вроде ).
Цитата
Учесть, что на процедурке не заканчивается свет, у меня пишется так:
$res->num_rows , $res->fetch_assoc() .

Спасибо. Это конечно ясно. У меня есть в других проектах совмещения процедурного стиля с ооп , там такие примеры тоже есть, но этот полностью на процедурном, поэтому здесь только четкий перенос с "а" на "б" .

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
inpost
VELIK505
Чтобы в функцию не передавать переменную.... советую изучить тебе суперглобальный массив $GLOBAL smile.gif Или свойства статичных классов.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
twin
Цитата (inpost @ 26.12.2012 - 19:27)
VELIK505
Чтобы в функцию не передавать переменную.... советую изучить тебе суперглобальный массив $GLOBAL :) Или свойства статичных классов.

Да проще все... Статичные классы рулят, inpost прав.

class DB
{
static $link;

public static function conhect()
{
self::$link = mysqli_connect(DBSERVER, DBUSER, DBPASSWORD, DATABASE)
or die('No connect');

mysqli_set_charset(self::$link, 'utf8');
}
}

И пиши где хочешь теперь
mysqli_insert_id(DB::$link);


Все довольны. И аппологеты не пикнут, и принцыпы процедурки не сильно то покорежены. А тем более, что нет таких принципов вовсе.

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

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

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

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

user posted image
Быстрый ответ:

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