Различные версии slick-библиотек в одном приложении [duplicate]

Этот запрос должен работать:

$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '%$username%'");
while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}

Проблема заключается в одинарных кавычках, поэтому ваш запрос завершается с ошибкой и возвращает FALSE, и цикл WHILE не может выполняться. Использование% позволяет сопоставлять любые результаты, содержащие вашу строку (например, SomeText- $ username-SomeText).

Это просто ответ на ваш вопрос, вы должны реализовать материал, упомянутый в других сообщениях: обработка ошибок , используйте escape-строки (пользователи могут вводить что-либо в поле, и вы ДОЛЖНЫ убедиться, что это не произвольный код), используйте PDO вместо mysql_connect, который теперь лишен.

5
задан rg41 22 December 2015 в 09:53
поделиться

2 ответа

Если полная замена одной зависимости новой версией работает, то решение Sparko работает. Однако это не всегда так.

Если вы хотите включить обе версии библиотеки в uber-jar, созданные sbt-assembly, вам нужно будет использовать затенение. См. этот пост для обзора того, что такое затенение, и некоторые из недостатков, связанных с ним.

Затенение описано в документации sbt-assembly здесь , но если вы что-то вроде меня, их способ объяснить это оставит вас более смущенными, чем вы начали. Есть хорошая запись в блоге, Spark, Uber Jars и Shading с sbt-assembly , что помогает немного демистифицировать его. Вот соответствующий раздел:

Я могу затенять мою конфигурационную конфигурационную версию, назвав ее другим именем, чтобы Spark не путался между версиями. Я быстро перешел в файл build.sbt и добавил следующий код:

assemblyShadeRules в сборке: = Seq (ShadeRule.rename ("com.typesafe.config. **" -> "my_conf. @ 1 ") .inLibrary (" com.typesafe "%" config "%" 1.3.0 ") .inProject)

Согласно документации, это должно помещать любой класс в com.typesafe.config под новый пакет my_conf.

В вашем случае решение добавит что-то вроде этого в ваш файл build.sbt:

assemblyShadeRules in assembly := Seq(
      ShadeRule.rename("com.somecompany.**" -> "my_conf.@1")
      .inLibrary("com.somecompany" % "libraryZ" % "0.11")
      .inProject
    )
1
ответ дан Brideau 1 September 2018 в 03:06
поделиться

В sbt конфликты между библиотеками настраиваются с помощью диспетчера конфликтов. По умолчанию выбрана последняя ревизия, но это также можно переопределить в файле .sbt:

conflictManager := ConflictManager.strict

Если вы используете sbt 0.13.6 или выше, вы будете предупреждены, если у вас есть несовместимый бинарная версия между вашими зависимостями. В этой ситуации вы можете настроить переопределение в вашем sbt-файле для конкретной библиотеки:

dependencyOverrides += "org.raman" % "Z" % "x.11"

Это заставит разрешенную версию Z на x.11, но не приведет к прямой зависимости.

0
ответ дан Sparko 1 September 2018 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: