Не удается получить данные из базы данных MAMP на Mac OS [дубликат]

Нажмите window + R (Run window Open) и в окне окна запуска "services.msc", а новые службы откроют службу поиска SQL SERVER(SQLEXPRESS) и повторите попытку, это работает для меня. Надеюсь, что это тоже работает для вас.

83
задан Taryn 22 March 2017 в 17:08
поделиться

5 ответов

Нет, вы не можете использовать mysql и mysqli вместе. Они представляют собой отдельные API-интерфейсы, и создаваемые ими ресурсы несовместимы друг с другом.

Однако есть mysqli_close.

53
ответ дан Explosion Pills 17 August 2018 в 15:53
поделиться
  • 1
    Хотя вам все равно не нужно закрывать соединение; объекты очищаются, когда они больше не ссылаются нигде. (Не уверен, что это делают старые старые ресурсы, но объекты могут фактически использовать RAII в незначительной степени.) – cHao 6 July 2013 в 00:54
  • 2
    @cHao не только это, но PHP закроет любые открытые соединения MySQL при выходе сценария – Explosion Pills 6 July 2013 в 00:56
  • 3
    Но не всегда, к моему опыту, поэтому мы всегда размещаем закрытие в нижней части файла. – RationalRabbit 31 December 2017 в 22:23

с моей стороны, я думаю, что вы можете, но вам придется делать файлы для подключения к базе данных, потому что mysqli_* будет принимать только mysqli_connect, и поэтому с помощью mysql_*

вы можете попробовать при обучении PDO Better

-1
ответ дан Ali Almoullim 17 August 2018 в 15:53
поделиться

MySQLi намного безопаснее, чем MySQL, который в любом случае устарел. Вот почему вы должны придерживаться MySQLi, а также вы не можете смешивать их, поскольку они оба разные.

-1
ответ дан duskwuff 17 August 2018 в 15:53
поделиться

Просто, чтобы дать общий ответ здесь обо всех трех API MYSQL со ссылкой:

Вы не можете смешивать ни одно из трех ( mysql_* , mysqli_* , PDO ) API MYSQL от PHP вместе, он просто не работает. Это даже в справочнике FAQ :

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


Вам нужно использовать тот же API MySQL и связанные с ним функции, от подключения к запросам .

10
ответ дан Funk Forty Niner 17 August 2018 в 15:53
поделиться
  • 1
    Некоторый парень пытался сказать мне сегодня, что у них нет проблем / ошибок при смешивании mysql_real_escape_string() с остальной частью их кода PDO. Есть ли что-то, что я не получил здесь в свое время, работая с этими различными API-интерфейсами? Я здесь невежественный? Это выражение для "теперь удалено" вопрос stackoverflow.com/q/34209127 доступен только для просмотра 10K +, если кто-нибудь задается вопросом. Это по отношению к $stmt3->execute(array('classID' => $_POST['class'],'studentID' => mysql_real_escape_string($substr))). Я что-то упустил? – Funk Forty Niner 10 December 2015 в 20:05
  • 2
    @ Fred-ii- Вы правы :) Чтение руководства показывает, что вы правильные . Вероятно, что mysql_real_escape_string() будет молча попытаться установить соединение с параметрами по умолчанию , которые затем работали для OP. Поэтому он просто установил соединение, чтобы получить набор символов. Таким образом, OP имеет 2 соединения – Rizier123 10 December 2015 в 20:49
  • 3
    Если бы ОП, по крайней мере, сказал мне / нам, что у них, вероятно, было две отдельные связи, я бы, наверное, согласился; они решили иначе. Тем не менее, я до сих пор не вижу, как это будет работать. Если это произойдет, я смущен. – Funk Forty Niner 10 December 2015 в 20:53
  • 4
    @ Fred-ii- Смотрите: link_identifier Он будет использовать настройки соединения по умолчанию, которые он получает с помощью ini_get(). Поэтому он, вероятно, работает только для OP с настройками по умолчанию. Я бы просто оставил его и получил новый кофе (☕☕☕). – Rizier123 10 December 2015 в 20:56
  • 5
    Вы могли бы добавить что-то о sqlsrv_query(). Я только что закрыл вопрос здесь stackoverflow.com/q/41263771 – Funk Forty Niner 21 December 2016 в 14:40

Технически вы можете использовать столько отдельных соединений, сколько хотите, в то время как ваша проблема вызвана простой опечаткой - вы не можете использовать ресурсы только из одного расширения с функциями из другого, что вполне очевидно.

Однако вам следует избегать нескольких подключений от одного и того же сценария, независимо от одного API или другого. Поскольку это будет обременять ваш сервер базы данных и исчерпывать его ресурсы. Итак, хотя технически вы можете, вы не должны смешивать разные расширения в своем коде, за исключением короткого периода рефакторинга.

2
ответ дан Your Common Sense 17 August 2018 в 15:53
поделиться
  • 1
    Хотя это, вероятно, хорошая идея, но по этой причине был разработан пул соединений. Когда у вас есть несколько веб-запросов, попавших на веб-сервер, вы не можете легко использовать одно и то же соединение, поэтому вы открываете новое соединение. Объединение пулов экономит накладные расходы на сервере приложений и базе данных. – Doug 9 July 2015 в 14:43
Другие вопросы по тегам:

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