Ответ 1
mysql_*
функции были удалены в PHP 7.
Вероятно, у вас есть PHP 7 в XAMPP. Теперь у вас есть две альтернативы: MySQLi и PDO.
Кроме того, вот хорошая вики-страница о PDO.
Я пытаюсь установить простое соединение с 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);
mysql_*
функции были удалены в PHP 7.
Вероятно, у вас есть PHP 7 в XAMPP. Теперь у вас есть две альтернативы: MySQLi и PDO.
Кроме того, вот хорошая вики-страница о PDO.
Вы можете использовать mysqli_connect($mysql_hostname, $mysql_username)
вместо mysql_connect($mysql_hostname, $mysql_username)
.
mysql_*
были удалены с PHP 7. Теперь у вас есть две альтернативы: MySQLi и PDO.
Рекомендуется использовать расширения 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?
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);
Как подсказывают другие ответы... Какой-то парень (по какой-то причине) решил, что ваш старый код не должен работать при обновлении PHP, потому что он знает лучше вас и не заботится о том, что делает ваш код или насколько он прост для вам обновить.
Ну, если вы не можете обновить свой проект в одночасье, вы можете
понизить версию PHP до любой работающей версии
или же...
используйте прокладку (вид полифилла), такую как https://github.com/dshafik/php7-mysql-shim или https://github.com/dotpointer/mysql-shim, а затем найдите место для
include_once("choice_shim.php");
где-то в вашем коде
Это сохранит ваш старый PHP-код и будет работать до тех пор, пока вы не настроитесь на обновление...
Функции mysql_
были удалены из PHP 7. Теперь вы можете использовать MySQLi или PDO.
Пример MySQLi:
mysqli_connect($mysql_hostname, $mysql_username, $mysql_password, $mysql_dbname);
Вы получили эту ошибку, потому что mysql_connect
(фактически, все функции mysql_*
) были удалены из PHP 7. Теперь вы можете использовать MySQLi или PDO.
Пример:
$mysqli = new mysqli($hostname, $username, $password, $database);
Убедитесь, что вы не совершили опечатку, как в моем случае
msyql_fetch_assoc должен быть mysql
Для mysqli вы можете использовать:
$ db = ADONewConnection ('mysqli');
......
$db-> execute ("установить имена 'utf8'");