Connection string
Connection string
Нашел один довольно неприятный проблем:
на хостинге для доступа к MySQL базе стоит пароль, который содержит символы = и ; + имя хоста содержит точки. Соответственно подключения к базе не происходит, как я понимаю именно из-за = и ; в пароле. Выдает Connection error. Хотя откуда это сообщение появляется понять не могу. Ни в одном из php файлов не нашел. Может в database.php в функции parseMySqlConnectionString стоит учесть это и разбирать не просто разделители = и ; , а и учесть кавычки, в которые можно заключить значения параметров в строке подключения, если они содержат эти самые разделители = и ; ?
А может я не прав и просто что-то не так делаю? Просветите, плиз.
на хостинге для доступа к MySQL базе стоит пароль, который содержит символы = и ; + имя хоста содержит точки. Соответственно подключения к базе не происходит, как я понимаю именно из-за = и ; в пароле. Выдает Connection error. Хотя откуда это сообщение появляется понять не могу. Ни в одном из php файлов не нашел. Может в database.php в функции parseMySqlConnectionString стоит учесть это и разбирать не просто разделители = и ; , а и учесть кавычки, в которые можно заключить значения параметров в строке подключения, если они содержат эти самые разделители = и ; ?
А может я не прав и просто что-то не так делаю? Просветите, плиз.
Connection string
Здравствуйте,
Да, всё верно, это является ошибкой (нужно учитывать случай, если какой-либо параметр заключён в кавычки). Это должен делать метод parseMySqlConnectionString(). Мы добавили реализацию этой возможности в наш to-do лист.
Спасибо.
Да, всё верно, это является ошибкой (нужно учитывать случай, если какой-либо параметр заключён в кавычки). Это должен делать метод parseMySqlConnectionString(). Мы добавили реализацию этой возможности в наш to-do лист.
Спасибо.
Connection string
Чисто как вариант:меняем на и заменяем на
После этого пишем строку соединения в виде параметр='значение'; и знаки = в пароле нормально воспринимаются.
Код: Выделить всё
$parameters = split(";", $connectionString);
Код: Выделить всё
$parameters = split("';", $connectionString);
Код: Выделить всё
$parts = split("=", $parameter);
Код: Выделить всё
$parts = split("='", $parameter);
Connection string
Здравствуйте,
Этот код очень упрощён и охватывает только Ваш случай. Нужно учитывать случаи ввода параметров без кавычек, ввода только некоторых параметров в кавычках, параметров содержащих кавычки, пробелы и переводы строк между параметрами и некоторые другие варианты. До официального релиза мы планируем реализовать такой парсер параметров.
Спасибо.
Этот код очень упрощён и охватывает только Ваш случай. Нужно учитывать случаи ввода параметров без кавычек, ввода только некоторых параметров в кавычках, параметров содержащих кавычки, пробелы и переводы строк между параметрами и некоторые другие варианты. До официального релиза мы планируем реализовать такой парсер параметров.
Спасибо.
Connection string
Для каждого языка программирования есть определенная формализация операторов, конструкций и т.п.
Аналогично для вашего продукта: зачем учитывать
Аналогично для вашего продукта: зачем учитывать
Если всего лишь нужно написать хелп, где четко указать в каком виде задавать строку подключения. Вот написано как писать строку - так и пиши, другие варианты не пройдут, а в данный момент приходится только догадываться, как эту строку писать. Пока не посмотришь database.php, где идет разбор строки подключения - не напишешь. Если в хелпе будет написано, что строка подключения пишется в виде параметр='значение'; или через двойные кавычки (как вам будет угодно), то необходимость в придумывании учитывающего всевозможные косяки пользователя (ввел параметр в кавычках, в двойных кавычках или вовсе без кавычек) отпадет сама собой. А переводы строк или пробелы между параметрами в строке подключения элементарно убираются чем то типа str_replace("\n", строка_подключения) и все. Зачем придумывать велосипед и тратить усилия на то, чтобы учесть ВСЕ варианты, когда пользователь, не зная что делает (нормального хелпа то нет), и пишет что попало в строке подключения? Я не думаю, что вы пишете парсеры для разбора всевозможной галиматьи, которую можно ввести в другие поля отчета. А таких мест множество. Вот где написал неправильно (не соответствует заданной вами формализации в отчете) - не работает. Повторюсь: зачем придумывать универсальный для всех случаев жизни велосипед, если просто нужно дать пользователю правила, которых нужно придерживаться?Vladimir писал(а):случаи ввода параметров без кавычек, ввода только некоторых параметров в кавычках, параметров содержащих кавычки, пробелы и переводы строк между параметрами и некоторые другие варианты.
Connection string
Здравствуйте,
Дело в том, что есть стандарт написания Connection String: Wiki: Строка подключения
Если уйти от этих правил написания и придумать свои - это будет некорректно, т.к. большинство пользователей (к примеру) не используют спецсимволы в параметрах строки соединения, и кавычки обязательными не являются. Так же, пользователи могут просто скопировать строку соединения, созданную в String Builder-е, который по умолчанию не ставит параметры в кавычки. Подробнее о вариантах написания строки соединения так же можно прочитать на сайте www.connectionstrings.com
Спасибо.
Дело в том, что есть стандарт написания Connection String: Wiki: Строка подключения
Если уйти от этих правил написания и придумать свои - это будет некорректно, т.к. большинство пользователей (к примеру) не используют спецсимволы в параметрах строки соединения, и кавычки обязательными не являются. Так же, пользователи могут просто скопировать строку соединения, созданную в String Builder-е, который по умолчанию не ставит параметры в кавычки. Подробнее о вариантах написания строки соединения так же можно прочитать на сайте www.connectionstrings.com
Спасибо.
Connection string
Владимир, я ни в одном месте не предлагал вам уйти от общепринятых правил. Но только вы сами прочтите внимательно первую ссылку, которую вы мне предложили прочесть. Именно там отражено все то, что я излагал своими словами. Озвучу еще раз:Vladimir писал(а):Здравствуйте,
Дело в том, что есть стандарт написания Connection String: Wiki: Строка подключения
Если уйти от этих правил написания и придумать свои - это будет некорректно, т.к. большинство пользователей (к примеру) не используют спецсимволы в параметрах строки соединения, и кавычки обязательными не являются. Так же, пользователи могут просто скопировать строку соединения, созданную в String Builder-е, который по умолчанию не ставит параметры в кавычки. Подробнее о вариантах написания строки соединения так же можно прочитать на сайте www.connectionstrings.com
Спасибо.
1. ни один из генераторов паролей не использует одинарные или двойные кавычки. Поэтому если встречаются кавычки в строке соединения- значит они открывают/закрывают значение параметра.
2. Из той же вики: если в строке встречается точка с запятой, то ВСЕ значение параметра должно быть заключено в кавычки.
А тот парсинг строки подключения, о котором вы говорили, заключается в strpos и все. И понятно, что split, который используется сейчас проблему не решит.
Вопрос в догонку: когда поле с текстом, у которого указано wordwrap=true будет расширяться вниз.
Connection string
Здравствуйте,
Спасибо.
Это будет доступно в релизе в сентябре.Вопрос в догонку: когда поле с текстом, у которого указано wordwrap=true будет расширяться вниз.
Спасибо.