Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: функции mysql и mysqli

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Prizma
Отправлено: 25 Июля, 2012 - 23:43:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




Почему мануал не советуют использование функций mysql? и предлагает альтернативу mysqli? в последующих версиях php перестанет поддерживать mysql и полностью перейдёт на mysqli? как то влияет скорость выполнения запросов от выбранной функции (mysql или альтернативы mysqli)?

я заметил что они отличаются то впринципе только тем что в mysqli нужно везде пихать параметр $link(идентификатор соединения) есть ли там какие то ещё аспекты которые нужно знать перед употреблением этих функций?
(Добавление)
сразу возник ещё один вопрос возможно ли использовать сразу 2 соединения вот так:

PHP:
скопировать код в буфер обмена
  1. <?
  2. #...
  3. $db = mysql_connect($hostname, $user, $password);
  4. $link = mysqli_connect($hostname, $user, $password)
  5. ?>


если часть скриптов работают на mysql функциях, а новые уже хочу писать на mysqli могу ли я открыть 2 соединения что бы работали и те и другие?
 
My status
 Top
Toxa
Отправлено: 25 Июля, 2012 - 23:54:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


Prizma пишет:
Почему мануал не советуют использование функций mysql?

Какие мануал?

Prizma пишет:
отличаются то впринципе только тем что в mysqli нужно везде пихать параметр $link

не только

Prizma пишет:
если часть скриптов работают на mysql функциях, а новые уже хочу писать на mysqli могу ли я открыть 2 соединения что бы работали и те и другие?

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


-----
Удобный сервис для хранения файлов
 
 Top
Prizma
Отправлено: 26 Июля, 2012 - 00:00:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




Toxa пишет:
Какие мануал?
официальный мануал по php www.php.net
Toxa пишет:
не только
чем ещё?
Toxa пишет:
я бы не советовал, т.к. может возникнуть очень большая путаница
спасибо за совет, но эт я уже решу исходя из ответов на вопросы сам Улыбка
(Добавление)
Цитата:
ПОчему MySQL расширение (ext/mysql), которое я использовал более 10 лет, теперь не рекомендуется использовать? Что я должен использовать вместо него? Как мне обновить свои программы?

Есть три расширения для работы с MySQL, как описано в разделе Выбор MySQL API Старое API не должно использоваться, и когда-нибудь будет будет помеченным как устаревшее и в конце концов удалено из PHP. Так как это расширение очень популярно, то этот процесс будет долгим, но настоятельно рекомендуется писать весь новый код с использованием либо mysqli либо PDO_MySQL.

Скрипты для перехода со старого API пока недоступны, но mysqli API содержит как процедурный так и объектный API, схожие со старым процедурным ext/mysql API.

Нельзя совмещать различные расширения. Поэтому, например передача mysqli соединения в PDO_MySQL или ext/mysql не будет работать.

выразека FAQ из мануала... короче понятненько в целом над перебератся на mysqli потихоньку
 
My status
 Top
KingStar
Отправлено: 26 Июля, 2012 - 00:09:29
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




если уж ты решил перебираться, то почему не на PDO ???


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Hawkmoth
Отправлено: 26 Июля, 2012 - 00:10:36
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




Наверное, одна из самых популярных статей на эту тему, один из нескольких вариантов перевода:
http://ruseller[dot]com/lessons.php?[dot][dot][dot]b=37&id=1381
Ну и чтобы окончательно закрепить:
http://forum.php.su/topic.php?fo...1&topic=7156

Основываясь в том числе и на этих источниках, выбрал для себя PDO.
С удовольствием выслушаю подкрепленное аргументами альтернативное мнение.
 
 Top
Prizma
Отправлено: 26 Июля, 2012 - 00:17:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




спасибо за предложенную альтернативу статьи уже читаю) PDO имеет место быть Улыбка будем разбиратся думаю так и сделаю
 
My status
 Top
KingStar
Отправлено: 26 Июля, 2012 - 00:19:25
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




Hawkmoth пишет:
Основываясь в том числе и на этих источниках, выбрал для себя PDO.
С удовольствием выслушаю подкрепленное аргументами альтернативное мнение.


Я с тобой полностью солидарен, когда я пробовал для себя, выбор пал на PDO


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Prizma
Отправлено: 26 Июля, 2012 - 01:14:37
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




начал тренироваться и сразу же возникла проблема, подскажите кто сталкивался вот код:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $db_driver = 'mysql';
  3. $db_host = 'localhost';
  4. $db_user = 'root';
  5. $db_password = '';
  6. $db_name = 'my_db';
  7. $db = new PDO($db_driver.':host='.$db_host.';dbname='.$db_name,$db_user,$db_password);
  8. $row = $db->exec('set names utf8;');
  9. $error_array = $db->errorInfo();
  10.  
  11. if($db->errorCode() != 0000)
  12.  
  13. echo "SQL ошибка: " . $error_array[2] . '<br />';
  14.  
  15. if($rows) echo "Количество затронутых строк: " . $rows. "<br />";?>

выводит:
Цитата:
WARNING не возможно задать требуемую кодировку!

почему так получилось?

(Отредактировано автором: 26 Июля, 2012 - 01:16:03)

 
My status
 Top
Hawkmoth
Отправлено: 26 Июля, 2012 - 01:37:52
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




Определение кодировки указывается в строке параметров дополнительной опцией:
PHP:
скопировать код в буфер обмена
  1. $db = new PDO('mysql:host=localhost;dbname=my_db', 'root', '', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES "UTF8"'));
 
 Top
Prizma
Отправлено: 26 Июля, 2012 - 02:01:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




спасибо большое)
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB