Исключение: вызов неопределенной функции mysqli_init () [duplicate]

Псевдоним Bash напрямую не принимает параметры. Вам нужно будет создать функцию и псевдоним.

alias не принимает параметры, но функцию можно вызвать так же, как псевдоним. Например:

myfunction() {
    #do things with parameters like $1 such as
    mv "$1" "$1.bak"
    cp "$2" "$1"
}


myfunction old.conf new.conf #calls `myfunction`

Кстати, функции Bash, определенные в вашем .bashrc, и другие файлы доступны как команды внутри вашей оболочки. Так, например, вы можете вызвать более раннюю функцию, подобную этой

$ myfunction original.conf my.conf
32
задан hakre 18 December 2012 в 17:09
поделиться

11 ответов

MySQLi является частью PHP. Там должен быть доступен пакет типа php-mysqli, или вы можете взять источник PHP и перекомпилировать этот mysqli. Возможно, вы уже установили его, но он сделан как модуль и отключен. Проверьте свой php.ini на extension=mysqli.so или аналогичный. он может быть прокомментирован или файл .so присутствует в вашем каталоге расширений, но не связан с PHP через это расширение = директива.

25
ответ дан Marc B 21 August 2018 в 03:56
поделиться
  • 1
    Имя пакета, который нужно загрузить для его работы, - это php5-mysql . Обычно он автоматически активирует модуль после его установки, поэтому вам не нужно будет изменять файл php.ini . – devrique 18 August 2014 в 16:12
  • 2
    i просто yum install php-mysqli, а затем перезапустил apache (на centos 6.8 service httpd restart), и он сработал. это было после преодоления «mbstring». ошибка, которая была аналогично разрешена с yum install php-mbstring – aequalsb 11 February 2017 в 09:23

Вот как я установил его на моем компьютере на базе Debian (ubuntu):

php 7:

sudo apt-get install php7.0-mysqli

php 5:

sudo apt-get install php5-mysqli
13
ответ дан Ajeet Shah 21 August 2018 в 03:56
поделиться
  • 1
    На изображении альпийского докера это apk add --update php-mysqli, если вам нужно его вручную установить. – luckydonald 27 March 2017 в 09:31
  • 2
    Не могли бы вы помочь мне включить mysqli() для php7 в windows – Shambhu 20 April 2018 в 08:05
  • 3
    @Shambhu Ответ ниже не помогает? – Ajeet Shah 20 April 2018 в 08:13
  • 4
    Неа!!! Это не так. Что еще мне здесь делать? – Shambhu 20 April 2018 в 08:16
  • 5
    Сожалею!!! Мне нужно было перезапустить Apache. Он работает отлично. – Shambhu 20 April 2018 в 08:20

В этой статье объясняется, как установить MySqli с EveryApache. Это также работает для меня.

Чтобы установить mysqli с помощью EveryApache:

  1. Войдите в WHM как пользователь root.
  2. Либо найдите «EasyApache» «или перейдите в« Программное обеспечение »>« EasyApache »
  3. Прокрутите вниз и выберите вариант сборки (ранее сохраненная конфигурация)
  4. Нажмите« Пуск »« Начать настройку на основе профиля »
  5. Выбрать версию Apache и нажмите «Следующий шаг».
  6. Выберите версию PHP и нажмите «Следующий шаг».
  7. Выберите дополнительные опции в «Кратком списке опций»
  8. Выберите «Список исчерпывающих опций» и найдите «Улучшенное расширение MySQL»
  9. Нажмите «Сохранить и построить»
24
ответ дан Duli 21 August 2018 в 03:56
поделиться
  • 1
    Отличный ответ для тех, кто использует WHM, именно то, что мне нужно. Благодарим за сообщение! – rog 20 December 2014 в 10:27
  • 2
    Я не вижу Software & gt; EasyApache на моей панели инструментов. Где я его найду? – CENT1PEDE 18 January 2016 в 07:46
  • 3
    Благодарю. Только то, что мне было нужно. – Varanasi Benares 24 April 2016 в 20:54
  • 4
    Heads up, ваша ссылка теперь возвращает сообщение ERROR 404 :( – ajsmart 26 June 2017 в 16:46

Использовать php-mysqlnd вместо php-mysql

apt-get install php-mysqlnd
38
ответ дан João Pimentel Ferreira 21 August 2018 в 03:56
поделиться
  • 1
    Это очень помогло. У меня был php5-mysql, и страница возвращала пустой ответ всякий раз, когда я пытался подключиться mysqli. Даже phpinfo показывал mysqli как загруженный, все еще было пустое ответное сообщение в Chrome и сброс соединения в Firefox. – Zeeshan 2 February 2016 в 08:43
  • 2
    Когда вы используете Docker с устаревшей версией PHP, выясняется, что apt-get - это неправильный способ установки библиотек для модулей PHP: он получает новые версии, независимо от того, какую версию PHP вы используете. К счастью, есть большая утилита под названием docker-php-ext-install - она ​​позволяет легко добавлять необходимые библиотеки модулей к вашей установке PHP. Надеюсь, это поможет кому-то. – Konstantin 18 February 2016 в 13:32
  • 3
    php-mysqlnd работает для новых версий – Pavel 27 March 2017 в 21:15
  • 4
    вы представляете для php 5, для более новой версии должно быть apt-get install php-mysqlnd – João Pimentel Ferreira 9 December 2017 в 13:50
  • 5
    Но почему? в чем разница между mysqlnd и mysqli? – Andreas Hartmann 8 April 2018 в 12:45
sudo apt-get -y -f install php7.0-mysql
2
ответ дан Juergen 21 August 2018 в 03:56
поделиться
  • 1
    это сработало! но я очень смущаюсь, что хочу установить расширение mysqli , и поэтому я ищу mysqli.so весь день. Я никогда не думал, что эта проблема будет решена с помощью установки php7.0-mysql . Итак, какова связь между mysqli и php7.0-mysql и почему у вас есть эта идея, которая устанавливает php7.0-mysql . – nail fei 25 July 2018 в 16:22

Поскольку вы используете Mac, откройте терминал и

  • cd / etc

Найдите php.ini и откройте его, например, с помощью редактора nano

  • nano php.ini

Найдите элемент управления + w для поиска «mysqli.default_socket» и измените строку to

  • mysqli.default_socket = /tmp/mysql.sock

Используйте control + x, а затем нажмите «y» и «return», чтобы сохранить файл , При необходимости перезапустите Aapche.

Теперь вы можете запустить mysqli.

1
ответ дан Julian Gong 21 August 2018 в 03:56
поделиться

Вот ссылка для деталей установки: http://php.net/manual/en/mysqli.installation.php

Если вы используете Windows или Linux: - Расширение MySQLi автоматически устанавливается в большинстве случаев, когда PHP & amp; Установлен пакет MySQL.

2
ответ дан Kleo M. Zane 21 August 2018 в 03:56
поделиться

Вы должны отредактировать две строки в вашем файле php.ini (я использую окна для этого примера):

. Первый относится к местоположению каталога расширений. См. Ниже:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "C:/php/ext"

. Второй относится к самому расширению:

extension=php_mysqli.dll

Модифицировать (раскомментировать) линию расширения было недостаточно для меня. Надеюсь, что это поможет

7
ответ дан Marcos Vinícius Soares 21 August 2018 в 03:56
поделиться
  • 1
    Очень маловероятно, что его mac запускает окна. – Ellert van Koperen 8 April 2016 в 10:19
  • 2
    Я нахожусь в Windows, и это полезно, поэтому, я думаю, мы можем назвать эту помощь, спасибо. О, и спасибо PHP за разумные параметры по умолчанию, мальчик, какой язык дерьма. – Overdrivr 28 March 2017 в 08:24
  • 3
    Я раскоментировал обе линии. Даже тогда я получаю ошибку, как Call to undefined function mysqli_connect() , что еще мне нужно делать здесь. Помощь в PLS – Shambhu 20 April 2018 в 08:11

Недавно я упустил Xampp в пользу родного Apache на Mac Sierra, потому что это новое требование php проекта. Sierra поставляется с php 5.6.25, но он не запускает mysql_ * из коробки, после большого количества поисковых запросов, я нашел этот сайт действительно полезным - https://php-osx.liip.ch . Как оказалось, php 5.6.25 поддерживает mysql_ *, но не включен. Выберите свою версию php и загрузите ее, она генерирует правильный php.ini для вашего php, тогда вам хорошо идти

1
ответ дан Rich 21 August 2018 в 03:56
поделиться

Для окон: 3 шага

step1: просто нужно указать путь папки ext в php.ini

здесь

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
 extension_dir = "C:\php7\ext"

шаг 2: Удалите комментарий из

extension=php_mysqli.dll

, шаг 3: перезапустите сервер Apache.

Счастливое кодирование !!!

0
ответ дан Shambhu 21 August 2018 в 03:56
поделиться

, если вы используете ubuntu 16.04 (возможно и выше), просто сделайте это

 sudo phpenmod mysqli
 sudo service php7.0-fpm restart
0
ответ дан Yu Jiaao 21 August 2018 в 03:56
поделиться
Другие вопросы по тегам:

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