Вопрос по mysql, php – Неустранимая ошибка: вызов неопределенной функции mysql_connect ()

36

Я установил PHP, MySQL и Apache.localhost() для PHP, и это работает хорошо. Но после того, как я скачал MySQL, он сообщает:

Fatal error: Call to undefined function mysql_connect()

Как я могу это исправить?

Перезапускали ли вы apache после установки пакетов? Devator
@GordonM совершенно прав.mysql_* функцииare deprecated, Естьbetter alternatives эта поддержкаparameterized queries. pilcrow
Если mysqli или PDO работают, вам все равно лучше их использовать. GordonM
Вы пометили свой вопрос [mysql-error-1064] - как вы это получите, если ваш скрипт не может связываться с MySQL? Repox

Ваш Ответ

15   ответов
3

Используйте. <?php $con = mysqli_connect('localhost', 'username', 'password', 'database'); ?>

В PHP 7. Вероятно, у вас есть PHP 7 в XAMPP. Теперь у вас есть два варианта: MySQLi и PDO.

0

Этот код может помочь вам

<?php 

$servername = "localhost";
$username = "root";
$password = "";


$con = new mysqli($servername, $username, $password);

?>

Но измените & quot; имя_сервера & quot; имя пользователя & quot; и & quot; пароль & quot;

1

Вот быстрое решение:

Все плюсы наверняка возненавидят меня за этот ответ. Но я получил ту же ошибку на сервере:Fatal error: Uncaught Error: Call to undefined function mysql_connect() который использовал PHP 7. У меня не было времени переписать весь код mysql, поэтому быстрое, временное исправление, если кому-то нужно, находится в CPANEL для поискаPHP Configuration и измените версию для этой учетной записи на что-то вроде PHP 5.4 вместо PHP 7. Затем код работал нормально без вышеуказанной ошибки.

6

Убедитесь, что ваша установка PHP была скомпилирована с поддержкой mysql. Создать тестовую веб-страницу, содержащую<?php phpinfo(); exit(); ?> и загрузите его в свой браузер. Поиск на странице для MySQL. Если вы этого не видите, вам нужно перекомпилировать PHP с поддержкой MySQL или переустановить пакет PHP, в который он встроен

Error: User Rate Limit Exceededjsfiddle.net/ad0gd90yError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededsomacon.com/p109.php
1

Я использую Windows 8 n эта проблема была решена путем изменения переменных среды

Следуй этим шагам: Откройте свойства моего компьютера -> дополнительные параметры системы -> переменные среды. В разделе «системные переменные» выберите «путь»; и нажмите «редактировать»; В поле «значение переменной» добавьте «C: \ php;»; ИЛИ путь, по которому установлен php.

нажмите OK и примените настройки и перезагрузите систему. Он должен работать.

0

Мое решение здесь (мне нужно было просто удалить последнюю косую черту (NB: обратные косые черты) изPHPIniDir 'c:\PHP\'): Неустранимая ошибка: вызов неопределенной функции mysql_connect () не может решить

0

Решением может быть использование таких функций адаптера, чтобы начать использоватьmysqli вместоmysql по всей вашей заявке:

if (!function_exists('mysql_connect')) {
    function mysql_connect($host = '', $user = '', $password = '', $database = '', $port = 0, $socket = '') {
        return mysqli_connect($host, $user, $password, $database, $port, $socket);
    }
}


if (!function_exists('mysql_select_db')) {
    function mysql_select_db($link, $dbname) {
        mysqli_select_db($link, $dbname);
    }
}
30

Откройте свой терминал и выполните команду ниже.

sudo apt-get install mysql-server

Если вы используете PHP, вам также необходимо установить модуль php для mysql 5:

sudo apt-get install php5-mysql
0

Проверьте, установлен ли модуль mysqli для вашей версии PHP

$ ls /etc/php/7.0/mods-available/mysql*
/etc/php/7.0/mods-available/mysqli.ini /etc/php/7.0/mods-available/mysqlnd.ini

Включить модуль

$ sudo phpenmod mysqli
25

Если вы получили эту ошибку после обновления до PHP 7.0, то вы используете устаревшие библиотеки.

mysql_connect — Open a connection to a MySQL Server
Warning
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used.

Больше здесь:http://php.net/manual/en/function.mysql-connect.php

Error: User Rate Limit Exceeded
28

Используйте & quot; mysqli_connect & quot;

$con = mysqli_connect("127.0.0.1","root","pass","your_database");

это сработает, я исправил свою проблему с этим.

2

Эта ошибка появляется только для вашей версии PHP v7.0. вы можете избежать этого, используя PHP v5.0 еще

используй это

mysqli_connect("localhost","root","")

я сделал только MySQL из MySQL

4
PHP.INI

Проверьте, не забыли ли вы включить опции ниже (загружает модули для mysql среди других):

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

Проблема обнаруживается, когда вы используетеmysql_connect в ваших строках кода, так что просто добавьте его, как вmysqli_cOnnect и это решит проблему.
Вы также должны затем использоватьmysqli во всех строках кода или проблема снова всплывет.
примерmysql_select_db будет тогдаmysqL_select_db.
Это для выбора базы данных.

Спасибо, надеюсь, это поможет

2

У меня была такая же проблема на RHEL6. Оказывается, что файл mysql.ini в /etc/php.d имел только имя модуля, но ему требовалось полное имя пути. В моей системе RHEL6 работает следующая запись:

; Enable mysql extension module

extension=/usr/lib64/php/modules/mysql.so

После изменения файла я перезапустил apache и все заработало.

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