Неустранимая ошибка: Непринятая ошибка: вызов функции undefined mysql_connect()

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

Неустранимая ошибка: необработанная ошибка: вызов неопределенной функции mysql_connect() в C:\xampp\htdocs\register.php: 22
Трассировка стека: # 0 {main} в C:\xampp\htdocs\register.php в строке 22

Пример строки 22:

$link = mysql_connect($mysql_hostname , $mysql_username);

Ответ 1

mysql_* функции были удалены в PHP 7.

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

Кроме того, вот хорошая вики-страница о PDO.

Ответ 2

Вы можете использовать mysqli_connect($mysql_hostname, $mysql_username) вместо mysql_connect($mysql_hostname, $mysql_username).

mysql_* были удалены с PHP 7. Теперь у вас есть две альтернативы: MySQLi и PDO.

Ответ 3

Рекомендуется использовать расширения MySQLi или PDO. Не рекомендуется использовать старое расширение mysql для новой разработки, поскольку оно устарело в PHP 5.5.0 и было удалено в PHP 7.

PHP предлагает три разных API для подключения к MySQL. Ниже мы показываем API, предоставляемые расширениями mysql, mysqli и PDO. Каждый фрагмент кода создает соединение с сервером MySQL, работающим на "example.com", используя имя пользователя "username" и пароль "password". И выполняется запрос, чтобы приветствовать пользователя.

Пример # 1 Сравнение трех API MySQL

<?php
// mysqli
$mysqli = new mysqli("example.com", "username", "password", "database");
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'username', 'password');
$statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

// mysql
$c = mysql_connect("example.com", "username", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>

Я предлагаю вам попробовать MySQLi и PDO и выяснить, какой дизайн API вы предпочитаете.

Читайте Выбор API и почему я не должен использовать функции mysql_ * в PHP?

Ответ 4

mysql_* функции были удалены в PHP 7.

Теперь у вас есть две альтернативы: MySQLi и PDO.

Ниже приведено сравнение некоторых распространенных изменений в MySQLi до (-) и после (+), взятых прямо из рабочего кода:

-if (!$dbLink = mysql_connect($dbHost, $dbUser, $dbPass))
+if (!$dbLink = mysqli_connect($dbHost, $dbUser, $dbPass))

-if (!mysql_select_db($dbName, $dbLink))
+if (!mysqli_select_db($dbLink, $dbName))

-if (!$result = mysql_query($query, $dbLink)) {
+if (!$result = mysqli_query($dbLink, $query)) {

-while ($row = mysql_fetch_array( $result, MYSQL_ASSOC )) {
+while ($row = mysqli_fetch_array( $result, MYSQLI_ASSOC )) {

-mysql_close($dbLink);
+mysqli_close($dbLink);

Ответ 5

Как подсказывают другие ответы... Какой-то парень (по какой-то причине) решил, что ваш старый код не должен работать при обновлении PHP, потому что он знает лучше вас и не заботится о том, что делает ваш код или насколько он прост для вам обновить.

Ну, если вы не можете обновить свой проект в одночасье, вы можете

понизить версию PHP до любой работающей версии

или же...

используйте прокладку (вид полифилла), такую как https://github.com/dshafik/php7-mysql-shim или https://github.com/dotpointer/mysql-shim, а затем найдите место для include_once("choice_shim.php"); где-то в вашем коде

Это сохранит ваш старый PHP-код и будет работать до тех пор, пока вы не настроитесь на обновление...

Ответ 6

Функции mysql_ были удалены из PHP 7. Теперь вы можете использовать MySQLi или PDO.

Пример MySQLi:

mysqli_connect($mysql_hostname, $mysql_username, $mysql_password, $mysql_dbname);

ссылка на mysqli_connect

Ответ 7

Вы получили эту ошибку, потому что mysql_connect (фактически, все функции mysql_*) были удалены из PHP 7. Теперь вы можете использовать MySQLi или PDO.

Пример:

$mysqli = new mysqli($hostname, $username, $password, $database);

Ответ 8

Убедитесь, что вы не совершили опечатку, как в моем случае

msyql_fetch_assoc должен быть mysql

Ответ 9

Для mysqli вы можете использовать:

$ db = ADONewConnection ('mysqli');

......

$db-> execute ("установить имена 'utf8'");