Имена: postgresql, psql, postgres, pg_*

Wicked

Новичок
Имена: postgresql, psql, postgres, pg_*

Некоторые время работаю с постгресом, и до сих пор не могу привыкнуть к разным вариациям его названия...
postgresql - название сервиса (аналог mysqld)
psql - тулза (аналог mysql)
postgres - дефолтная бд (аналог mysql)
pg_* - тулзы (аналоги mysql_*)

Может кто объяснить, как это все запомнить раз и навсегда? :)
 

HraKK

Мудак
Команда форума
Wicked
Это наверно самый важный вопрос по PgSQL
переезжаем.
 

kode

never knows best
дефолтное апи постгреса не в пример удобнее мускульного. Там даже есть встроенный строитель простых запросов (pg_select, pg_insert, pg_delete, pg_update), я уже не говорю что с постргресом почти полностью отпадает угроза иньекций
 

kode

never knows best
Автор оригинала: Gas
почему?
приведу пример:

pg_send_query_params($pgsql, "SELECT * FROM users WHERE login = $1 AND password = $2", array($_POST['login'], $_POST['password']);

или

pg_select($pgsql, 'users', array('login'=>$_POST['login'], 'password'=>$_POST['password']));

а теперь попробуй иньекцию сделать
 

berkut

Новичок
kodeпрежде чем чёто бухтеть нужно ознакомиться с вопросом. в mysqli и прочем уже давно плейсхолдеры есть. и в то-же время есть pg_query()
 

Garret

Кто здесь?
Встроенные плэйсхолдеры это конечно большой плюс.
 

kode

never knows best
Автор оригинала: berkut
kodeпрежде чем чёто бухтеть нужно ознакомиться с вопросом. в mysqli и прочем уже давно плейсхолдеры есть. и в то-же время есть pg_query()
лол, я говорил про дефолтные библиотеки (pg_*, mysql_*), а про mysqli даже не слова. прежде чем чёто бухтеть нужно внимательно почитать ответы
 

Gas

может по одной?
kode
понятно, плейсхолдеры.
но я так понял нет нативной поддержки для select'ов с джойнами?
так mysqli и pdo - клиенты, которые есть везде, если нет, то нах. такой хостинг.

berkut
там же вроде поддержка плейсхолдеров для prepared statement'ов, лично мне как-то кажется странным для единичных запросов постоянно их (prepared) использовать.
 

svetasmirnova

маленький монстрик
kode
> лол, я говорил про дефолтные библиотеки (pg_*, mysql_*), а про mysqli даже не слова. прежде чем чёто бухтеть нужно внимательно почитать ответы

Лол, mysql_* уже давно не дефолтная
 

kode

never knows best
Автор оригинала: svetasmirnova
kode
> лол, я говорил про дефолтные библиотеки (pg_*, mysql_*), а про mysqli даже не слова. прежде чем чёто бухтеть нужно внимательно почитать ответы

Лол, mysql_* уже давно не дефолтная
аргументируйте
 

svetasmirnova

маленький монстрик
Ну а что тут аргументировать. В PHP afaik только расширение для работы с SQLLite по умолчанию (среди имеющих отношение к базам данных)

А если серьёзно см. мануал http://dev.mysql.com/doc/refman/5.0/en/php.html: "mysql: Available for PHP versions 4 and 5, this extension is intended for use with MySQL versions prior to MySQL 4.1." или даже лучше http://www.php.net/manual/en/intro.mysqli.php: "The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above" Ну как может расширение быть "по умолчанию", если оно не поддерживает в полном объёме текущую версию MySQL?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Wicked
Некоторые время работаю с постгресом, и до сих пор не могу привыкнуть к разным вариациям его названия...
postgresql - название сервиса (аналог mysqld)
psql - тулза (аналог mysql)
postgres - дефолтная бд (аналог mysql)
pg_* - тулзы (аналоги mysql_*)

Может кто объяснить, как это все запомнить раз и навсегда? :)
Интересное zogмечание, одна поправка: тащемта АНАЛог mysqld называется postgres. А раньше он вообще назывался postmaster. :)

Думаю, основная проблема в том, что PostgreSQL развивается несколько дольше чем MySQL, при этом менялись разработчики и название проекта (POSTGRES -> Postgres95 -> PostgreSQL). Каждый называл, как хотел.

С другой стороны, мне кажется лучше заучить эти названия, чем тот факт что "при вставке значения NULL в поле, объявленное как NOT NULL, ошибки не будет, только warning, но вставится туда на самом деле значение по умолчанию" --- цитата из выступления Светы Смирновой на phpconf 2008.
 

kode

never knows best
Автор оригинала: svetasmirnova
Ну как может расширение быть "по умолчанию", если оно не поддерживает в полном объёме текущую версию MySQL?
Могу привести много примеров, когда дефолтное АПИ не покрывает всех возможностей
 

berkut

Новичок
ыыы) попу порвут, чтобы доказать, что древняя либа есть дефолтная, хотя вообще ни одна ей не является. kode
стопудово ты ходишь в майке с пингвином, а на пилотке надпись: "виндовс маст дай". и ты изысканый ценитель гемороя
 

kode

never knows best
Автор оригинала: berkut
ыыы) попу порвут, чтобы доказать, что древняя либа есть дефолтная, хотя вообще ни одна ей не является. kode
стопудово ты ходишь в майке с пингвином, а на пилотке надпись: "виндовс маст дай". и ты изысканый ценитель гемороя
OH SHI! Как ты догадался? Я не могу в это поверить! Скажите мне что это не так! :D
 

MiksIr

miksir@home:~$
Автор оригинала: Sad Spirit
С другой стороны, мне кажется лучше заучить эти названия, чем тот факт что "при вставке значения NULL в поле, объявленное как NOT NULL, ошибки не будет, только warning, но вставится туда на самом деле значение по умолчанию" --- цитата из выступления Светы Смирновой на phpconf 2008.
=)
А мню в мускуле напрягает больше всего такие работающие конструкции =)
select a,b from table group by a;
=)
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: svetasmirnova
Тема плавно перешла в holy war :)
Перешла!? :D

По-моему направление ей задал автор исходного поста, начав сравнивать с MySQL. :D
 
Сверху