私はXAMPPとMySQLサーバーとの簡単な接続を試みますが、データを入力したりデータベースに接続しようとするといつもこのエラーになります。
致命的なエラー:捕捉されなかったエラー:C:\ xampp\htdocs\register.php:22の未定義関数mysql_connect()への呼び出し
スタックトレース:#0 {main}がC:\ xampp\htdocs\register.phpの22行目にスローされています
22行目の例:
$link = mysql_connect($mysql_hostname , $mysql_username);
MySQLiまたはPDOの拡張を使用することをお勧めします。 PHP 5.5.0で廃止され、PHP 7で削除されたため、新しいmysql拡張モジュールを新しい開発に使用することはお勧めできません。
PHPはMySQLに接続するための3つの異なるAPIを提供します。以下に、mysql、mysqli、およびPDO拡張によって提供されるAPIを示します。各コードスニペットは、 "example.com"で実行されているMySQLサーバーへの接続を、ユーザー名 "username"とパスワード "password"を使用して作成します。そして、ユーザに挨拶するためにクエリが実行されます。
例1 3つのMySQL APIの比較
<?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設計を好むのかを調べてください。
他の答えが示すように...あなたのPHPをアップグレードするとき、あなたの古いコードは機能しないほうがいいと決心した人がいます。アップグレードしてください。
一晩でプロジェクトをアップグレードできない場合は
お使いのPHPのバージョンを、動作したバージョンにダウングレードしてください。
または...
https://github.com/dshafik/php7-mysql-shim または https://github.com/dotpointer/mysql-shim などのシム(一種のポリフィル)を使用してからコードのどこかに
include_once("choice_shim.php");
の場所を見つける
あなたが更新する気分になるまで、それはあなたの古いPHPコードを動かし続けます...
mysql_*
関数はPHP 7で削除されました。
2つの選択肢があります: 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);
あなたが私の場合のようにタイプミスを犯していないことを確認してください
msyql_fetch_assocは mysql であるべきです