- 1
- 2
Is there PHP mysql_real_escape_string for postgresql?
pg_escape_string
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−9
Is there PHP mysql_real_escape_string for postgresql?
pg_escape_string
https://www.php.net/manual/en/function.pg-escape-string.php
guest6 23.12.2021 15:25 # +1
gEKA6PbCKuu_nemyx 23.12.2021 15:29 # +1
guest6 23.12.2021 15:29 # +1
Floating_cockerel 23.12.2021 16:00 # +1
guest6 23.12.2021 15:30 # +3
If your database is a UTF-8 database, you will run into problems trying to add some data into your database...
for securty issues and/or compatability you may need to use the: utf_encode()
$my_data = pg_escape_string(utf8_encode($_POST['my_data']));
--------------
блядь, ну это реально какая-то альтернативная ветвь Homo. Это может денисовцы?
Вот вы меня спрашиваете "почему нельзя писать на пхп".
Вот нельзя с такими людьми находиться на одних ресурсах. Это вопрос гигиены же
gEKA6PbCKuu_nemyx 23.12.2021 15:34 # +1
Посмотрел, что за функция utf8_encode. Хуй-ня какая-то. Перекодирует ISO8859-1 в UTF-8, больше ничего не умеет. Т. е. она нужна только мудакам из США и Западной Европы, которые путают свою кодировку с UTF-8.
Floating_cockerel 23.12.2021 15:57 # +1
Steve_Brown 23.12.2021 17:58 # 0
guest6 23.12.2021 18:01 # +1
кодировки какие-то однобайтовые
давайте еще рашн апаче вспосмним
gEKA6PbCKuu_nemyx 23.12.2021 18:19 # 0
gEKA6PbCKuu_nemyx 23.12.2021 18:26 # +1
— Но почему тогда, например, скобки (круглые, квадратные, фигурные) не входят в ваш список спецсимволов?
Ответ SMM-щика «Альфа-банка»:
— Использование данных символов не рекомендуется, потому что в кодировках разных систем, символы определяется по-разному. Например, если вы создадите пароль в Linux, то потом по этому же паролю в ОС Windows вы не сможете зайти.
Во вселенной «Альфа-банка» в 2019-м году существуют разные кодировки, поэтому использование в пароле символов за пределами базовой латиницы и цифр не рекомендуется.
bormand 23.12.2021 18:28 # 0
gEKA6PbCKuu_nemyx 23.12.2021 18:31 # +1
guest6 23.12.2021 19:00 # +3
Если вы работаете за мейнфреймом с EBDIC, то ваш пароль может не подойти в Linx
bormand 23.12.2021 19:05 # −2
guest6 23.12.2021 19:06 # 0
bormand 23.12.2021 19:09 # +1
ObeseYoung 23.12.2021 23:30 # +2
Одному из комментаторов Banki.ru поддержка «Альфы» ответила, что с 1 октября внедряется комиссия за пополнение карт других банков с «пластика» Альфа-банка: она составит 1,95% (минимум 30 рублей).
Бегите, глупцы!
Steve_Brown 24.12.2021 11:32 # 0
Не возвращайте мне мой 2007-й.
Fike 25.12.2021 18:51 # +2
тут недавно в дотнет-чате человек пришел. говорит, переписал бейс64, изкоробочный говно.
спрашиваю, а что со стандартной реализацией не так?
а он и говорит: нет декодинга и энкодинга в utf-8
gEKA6PbCKuu_nemyx 25.12.2021 19:34 # 0
OMuKPOH 26.12.2021 00:03 # 0
guest6 23.12.2021 15:37 # +1
https://www.php.net/manual/en/function.pg-delete.php
>> safe
Steve_Brown 23.12.2021 17:23 # 0
guest6 23.12.2021 17:26 # +1
я никогда не спал с мужчиной
ну то есть да, бывало спал
но спал в том смысле, что без секса
ну то есть что считать за секс?
Support 23.12.2021 17:29 # 0
Steve_Brown 23.12.2021 18:01 # 0
3.14159265 24.12.2021 22:46 # 0
Зачем? Зачем?
На каждую бд своё апи?
Давным-давно есть ODBC, а также PHP Data Objects. Advanced пыхеры вообще Zend Db заюзают.
bormand 24.12.2021 22:50 # 0
3.14159265 24.12.2021 23:05 # 0
В PDO есть prepared statement.
А Zend Db это вообще такое недоLINQ-to-SQL (что по идее должно быть портабельно).
bormand 24.12.2021 23:12 # 0
3.14159265 24.12.2021 23:15 # 0
В котором свои заковырки, особенности экранирования и багры.
> Values must be escaped or the PGSQL_DML_ESCAPE flag must be specified in flags.
> mysql_real_escape_string
Итд
Нет, ну нахуй. Лучше освоить раз универсальное api и писать на нём. И код будет портабельнее.
bormand 24.12.2021 23:32 # +1
Один хер учить детали реализации этого апи под конкретную базу...
Портабельной будет только какая-нибудь key-value хуйня отображающая строку в строку. И то какое-нибудь говно вылезет.
guest6 25.12.2021 00:37 # +1
bormand 25.12.2021 00:40 # 0
guest6 25.12.2021 00:47 # 0
Я не спорю с тем, что "универсальный SQL" это миф.
но если есть возможность посылать его через одинаковый API (да еще и борться с SQL инъекцией) то чому б нi?
bormand 25.12.2021 00:54 # 0
> SQL инъекцией
Судя по доке там есть подготовленные запросы.
З.Ы. Помнится, PDO драйвер для мускуля вместо подготовки запросов тупо экранировал и клеил... Обобщённое апи такое обобщённое.
bormand 25.12.2021 00:56 # 0
Не возвращать же ошибку...
guest6 25.12.2021 01:03 # +2
В нормальных СУБД такого не может быть впринципе
Боже, как хорошо, что я не имею ни малейшего отношения к пыхоговну и мускульговну, это просто блядь can of worms блядь какой-то
bormand 25.12.2021 00:58 # 0
Драйвер MySQL не поддерживает должным образом PDO::PARAM_INPUT_OUTPUT через PDOStatement::bindParam(); хотя параметр можно использовать, он не обновляется (т.е. фактический вывод игнорируется).
Охуенно универсальное апи.
guest6 25.12.2021 01:01 # 0
А как дела в DAO, ADO, ADO.NET, JDBC, ODBC, PEP 249 и DBI?
Все ли сосут, или только пыхокал?
bormand 25.12.2021 01:08 # +1
1) Делаем апи, которое работает везде. Но из практических задач решить может чуть менее чем нихуя.
2) Пытаемся сделать апи, которое умеет всё. Иногда криво. Местами через эмуляцию. Один хер весь код в ифдефах.
3) Делаем экстеншены к общему апи. И получаем ёбаного уродливого кентавра. И весь код в ифдефах.
Выбери свой стул.
0) Забиваем хуй на обобщения и отдаём реальное апи базы.
guest6 25.12.2021 01:10 # 0
Сишка тоже может между компиляторами отличаться.
Отличаться может трактование SQL, но API:
* делаем запрос (текстом)
* получаем курсор или таблицу
может быть универсальным
>все
нук покажи мне MySQL-specific говно в JDBC, например?
bormand 25.12.2021 01:11 # 0
Тогда тебе достанется апи в котором часть функций работает криво или через эмуляцию, а остальные надо тестить ифдефами... Добро пожаловать в реальный мир.
guest6 25.12.2021 01:21 # 0
ради бога
хочеш перформанса -- бери реальный API
bormand 25.12.2021 01:13 # 0
> текстом
10/10
А экранировать его чем? )))
> получаем таблицу
Тоже текстом?
Soul_re@ver 25.12.2021 01:18 # 0
mysql_real_escape_string, конечно!
> Тоже текстом?
CSV в строковой переменной.
guest6 25.12.2021 01:20 # 0
Средствами драйверв
https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
>Тоже текстом?
нет, объектом. По умолчанию можешь конечно переменную только текстом или числом скачать, хочешь специфичных штук -- завязывайся на драйвер
bormand 25.12.2021 01:26 # 0
JDBC API implementation notes в доке к коннектору. Ну и заодно соседние разделы про типы данных, даты и т.п.
З.Ы. И миллион атрибутов для коннектов и запросов.
guest6 25.12.2021 01:30 # 0
Хочешь -- не знай как реализована PreparedStatement или что такое DatabaseMetaData, и с типами работай на уровне строк.
единственный отсос это
>MySQL does not support SQL cursors, and the JDBC driver doesn't emulate them
тут и правда плохо
bormand 25.12.2021 01:33 # 0
Суть в том, что эта дока -- часть апи. И если её не изучить -- можно запросто обосраться.
guest6 25.12.2021 01:36 # 0
то, что разное, отличаться должно.
Linux и Solaris разные, нельзя писать одинаково приложение под них, но какая-то их часть (позикс) одинаковая.
Тоже самое должно быть с СУБД.
Если
работает одинаково, то и API должен быть одинаковый, а не
итд
bormand 25.12.2021 01:48 # 0
Или типа мы тут нахуячили апи на object'ах, а ты иди читай доку по конкретной реализации чтобы догадаться во что их кастовать.
3.14159265 25.12.2021 03:25 # 0
Нет.
Зависит от реализации драйвера.
Например я ради лулзов ставил драйвер для csv (пробовал в squirele).
И там даже update/delete нет. И джойны какие-то анскильные, деталей не помню, но очень урезанный функционал.
Драйвер же просто реализовывает интерфейс. В конце концов он может просто кидать NotImplementedException Upd: тьфу, это .нете. В Йаже UnsupportedOperationException.
bormand 25.12.2021 06:24 # +1
> он может просто кинуть NotImplemented
Какое LSP )))
Адепты ООП свою методичку так и не дочитали...
guest6 25.12.2021 03:32 # 0
bormand 25.12.2021 02:07 # +1
Я могу написать прогу, пользуясь только позиксовой докой (ну или стандартом крестов/сишки). И она должна работать на всех системах, что заявили себя как позикс (поддерживают стандарт крестов/сишки).
Могу ли я написать прогу, пользуясь только спекой на JDBC и не поглядывая в вендорские доки? Ну ок, параметры подключения можно подсмотреть или их юзер снаружи передаст.
guest6 25.12.2021 03:34 # 0
Этого, разумеется, не хватит для продакшена, но хотя бы то, что одинаково, будет выглядеть одинаково.
3.14159265 25.12.2021 03:21 # 0
Но это на порядок проще чем учить driver-specific api.
bormand 25.12.2021 06:40 # +1
По крайней мере не создаёт иллюзию обобщённости.
guest6 25.12.2021 09:04 # +1
датабейз агностицизма никто не обещает в здравом уме
JloJle4Ka 25.12.2021 09:05 # 0
guest6 25.12.2021 09:07 # 0
JloJle4Ka 25.12.2021 09:12 # 0
Entity Framework gives developers the ability to be abstracted from the underlying relational database management system and allows them to talk to a database using familiar LINQ-based syntax.
Entity Framework therefore simplifies the development process and greatly aids in improving productivity while working with a database. Entity Framework does so via a model that serves as a database abstraction. However, this technology is not database agnostic. As a result, if an application needs to be compatible with multiple databases, you have two choices. You could have multiple models, thus duplicating your efforts with each supported RDBMS (Relational Database Management System). Alternatively, you can use single model by deploying a technique that allows you to switch database support during deployment based on your target database.
guest6 25.12.2021 09:13 # 0
так ты пишешь на LINQ, а не на SQL.
JloJle4Ka 25.12.2021 09:15 # 0
3.14159265 25.12.2021 17:46 # +1
> this technology is database agnostic.
Дай угадаю.
List of supported databases:
* Microsoft SQL Server 2012
* Microsoft SQL Server 2016
* Microsoft SQL Server 2019
bormand 25.12.2021 18:54 # 0
JloJle4Ka 25.12.2021 09:20 # 0
https://rashadkokash.me/framework-agnostic-app/
guest6 25.12.2021 09:24 # +1
Но конечно ничто не мешает тебе придумать высокоуровневый API, и генерить код для конкретных баз.
Так работают Hibernate, EF, Django ORM, Alchemy, рельсы, и вот то, что пишет Кокаш.
Во всех этих решениях ты не пишешь на голом SQL, а выражаешь мысли в более высокоуровневых терминах, которые затем переводятся на SQL.
Не бывает кросс-процессорного асемблера, но бывает компилятор из си
так и тут
JloJle4Ka 25.12.2021 09:26 # 0
guest6 28.06.2024 23:00 # 0
guest6 25.12.2021 01:02 # +2
gEKA6PbCKuu_nemyx 25.12.2021 09:55 # +1
KqueueGovno 25.12.2021 10:47 # 0
KqueueGovno 25.12.2021 10:48 # 0
Говнокод #27481 — Куча
24 июн. 2021 г. — ava MAPTbIwKA 28.06.2021 18:19 # 0. говно-и-палочки, то тут, то там что-то чуток подкрутили пыхокал такой пыхокал.
gEKA6PbCKuu_nemyx 25.12.2021 16:22 # 0
Soul_re@ver 25.12.2021 16:49 # 0
Fike 25.12.2021 14:27 # 0
bormand 25.12.2021 14:48 # 0
Fike 25.12.2021 15:34 # +2
Support 25.12.2021 17:32 # 0
Desktop 01.05.2024 22:17 # 0
guest6 01.05.2024 22:18 # 0
guest6 01.05.2024 23:37 # 0
MAPTOBCKuu_nemyx 02.05.2024 00:47 # 0
guest6 02.05.2024 00:48 # 0
MAPTOBCKuu_nemyx 02.05.2024 00:55 # 0
https://www.php.net/manual/ru/book.ds.php
guest6 02.05.2024 01:21 # 0
какой Борхес :)) А есть метод "отсериализовать в Томл и послать по телеграму коллеге"?
Зачем в скриптоговне развели такую пафсоную хуйиту?
нахуя нужен
https://www.php.net/manual/ru/ds-sequence.capacity.php
?
Серьезно
https://www.php.net/manual/ru/ds-sequence.allocate.php
??
А может, алокаторы кастомные завести, чтобы арены делать?
Опять на джавушка двадцатиелтней давности посмотрел, и решил таким же стать?
guest6 02.05.2024 05:50 # 0
напихал строк и давай их суммировать
MAPTOBCKuu_nemyx 02.05.2024 06:14 # 0
Типа '2pituh' + '3kurochka' будет 5, но с ворнингом.
Настоящий пыхопетух поставит собачку или выключит вывод ворнингов.
guest6 02.05.2024 01:34 # 0
https://www.php.net/manual/ru/class.arrayobject.php
но кроме этого s you know ArrayObject is not an array so you can't use the built in array functions
То-есть долбоёбы реально высрали три сущности для одново и тово же, и всё равно оборсаолись
>ArrayObject::natsort — Сортировать массив, используя алгоритм "natural order"
сука это реально метод интерфейса у них?
То-есть они не осилили даже алгоритмы от структур отпилить, как в С++ 40 лет назал сделали?
А вот прекрасное
https://www.php.net/manual/ru/arrayobject.setflags.php
Прямо именно такого API и ждешь от высокоуровневово скриптоговна
guest6 02.05.2024 00:48 # 0
jit jit po verevochke bejit
guest6 01.05.2024 23:05 # 0
guest6 02.05.2024 00:53 # 0
guest6 02.05.2024 00:56 # 0
https://news.ycombinator.com/item?id=40216531
MAPTOBCKuu_nemyx 02.05.2024 01:00 # 0