치명적인 오류 : 포착되지 않은 오류 : 정의되지 않은 함수 mysql_connect () 호출
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);
mysql_*
PHP 7에서는 함수가 제거되었습니다.
XAMPP에 PHP 7이있을 것입니다. 이제 MySQLi 및 PDO의 두 가지 대안이 있습니다 .
또한 여기 에 PDO에 대한 멋진 위키 페이지가 있습니다.
mysqli_connect($mysql_hostname , $mysql_username)
대신 사용할 수 있습니다 mysql_connect($mysql_hostname , $mysql_username)
.
mysql_*
함수는 PHP 7에서 제거되었습니다. 이제 MySQLi 와 PDO의 두 가지 대안이 있습니다.
MySQLi 또는 PDO 확장을 사용하는 것이 좋습니다. PHP 5.5.0에서 더 이상 사용되지 않고 PHP 7에서 제거되었으므로 새로운 개발을 위해 이전 mysql 확장을 사용하지 않는 것이 좋습니다.
PHP는 MySQL에 연결할 수있는 세 가지 API를 제공합니다. 아래에서는 mysql, mysqli 및 PDO 확장에서 제공하는 API를 보여줍니다. 각 코드 조각은 사용자 이름 "username"과 암호 "password"를 사용하여 "example.com"에서 실행되는 MySQL 서버에 대한 연결을 생성합니다. 그리고 사용자를 맞이하기 위해 쿼리가 실행됩니다.
예제 # 1 세 가지 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 디자인을 알아내는 것이 좋습니다.
읽기 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 버전을 작동하는 버전으로 다운 그레이드
또는...
use a shim (kind of polyfill) such as https://github.com/dshafik/php7-mysql-shim or https://github.com/dotpointer/mysql-shim, and then find a place for
include_once("choice_shim.php");
somewhere in your code
That will keep your old PHP code up and running until you are in a mood to update...
mysql_
functions have been removed from PHP 7. You can now use MySQLi or PDO.
MySQLi example:
mysqli_connect($mysql_hostname, $mysql_username, $mysql_password, $mysql_dbname);
You got that error because the mysql_connect
function (actually, all mysql_*
functions) were removed from PHP 7. You can now use MySQLi or PDO.
Example:
$mysqli = new mysqli($hostname, $username, $password, $database);
Make sure you have not committed a typo as in my case
msyql_fetch_assoc should be mysql
For mysqli you can use :
$db = ADONewConnection('mysqli');
... ...
$db->execute("set names 'utf8'");
'developer tip' 카테고리의 다른 글
PHP stdObject에서 첫 번째 요소 가져 오기 (0) | 2020.11.26 |
---|---|
Amazon EC2에서 시간대를 설정하는 방법은 무엇입니까? (0) | 2020.11.26 |
Double []을 double []로 어떻게 변환합니까? (0) | 2020.11.26 |
JavaScript에서 배열이 존재하는지 확인하는 방법은 무엇입니까? (0) | 2020.11.26 |
Mercurial에서 hg 되돌리기 사용 (0) | 2020.11.26 |