데이터베이스 작업은 특히 MySQL 데이터베이스와 상호 작용할 때 PHP 응용 프로그램 개발의 불가피한 부분입니다. 데이터를 삽입, 업데이트, 삭제 또는 데이터 쿼리에 관계없이 모든 단계의 오류로 인해 응용 프로그램 실패 또는 데이터 불일치가 발생할 수 있습니다. 데이터베이스 작업의 원활한 실행을 보장하려면 효과적인 오류 처리 메커니즘이 필요합니다.
MySQLI_STMT :: $ ERROR 는 PHP MySQLI Extension에서 제공하는 매우 유용한 속성으로, 마지막 데이터베이스 작업에서 발생한 오류 정보를 얻을 수 있습니다. 이 기사에서는 MySQLI_STMT :: $ 오류를 사용하여 데이터베이스 오류 어시스트를 작성하고 데이터베이스 작업의 오류를 효과적으로 처리하는 방법에 대해 논의합니다.
데이터베이스 작업을 시작하기 전에 먼저 MySQLI를 통해 MySQL 데이터베이스에 연결해야합니다. mysqli_connect () 또는 객체 지향 메소드를 통해 연결할 수 있습니다.
<?php
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'test_db';
// 객체 지향적 접근법을 사용하여 연결을 만듭니다
$mysqli = new mysqli($host, $user, $password, $database);
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
?>
데이터베이스에 성공적으로 연결하면 다음 단계는 SQL 쿼리를 준비하는 것입니다. 효과적인 오류 처리를 위해서는 준비된 명령문을 사용하는 것이 좋습니다. 전처리 명세서는 SQL 주입을 방지 할뿐만 아니라 쿼리 효율을 향상시킵니다.
다음은 mysqli_stmt를 사용하여 SQL 쿼리를 실행하고 가능한 오류를 처리하는 방법입니다.
<?php
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";
// 전처리 진술을 사용하십시오
$stmt = $mysqli->prepare($sql);
if ($stmt === false) {
die("전처리 명세서 오류: " . $mysqli->error);
}
// 바인딩 매개 변수
$username = 'john_doe';
$email = '[email protected]';
$stmt->bind_param('ss', $username, $email);
// 실행 진술
$stmt->execute();
// 실행 결과를 확인하십시오
if ($stmt->error) {
die("실행 오류: " . $stmt->error);
} else {
echo "데이터 삽입이 성공적으로 삽입됩니다!";
}
?>
개발 중에 오류 어설 션은 매우 중요하며 문제를 신속하게 찾아 해결하는 데 도움이됩니다. mysqli_stmt :: $ 오류를 결합하여 오류 어설 션을 만들 수 있습니다. 데이터베이스 작업이 실패하면 프로그램을 즉시 중지하고 특정 오류 정보를 출력하십시오.
<?php
function assertQuerySuccess($stmt) {
if ($stmt->error) {
throw new Exception("데이터베이스 작업이 실패했습니다: " . $stmt->error);
}
}
try {
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";
$stmt = $mysqli->prepare($sql);
assertQuerySuccess($stmt); // 오류가있는 경우,예외를 던지십시오
$username = 'jane_doe';
$email = '[email protected]';
$stmt->bind_param('ss', $username, $email);
$stmt->execute();
assertQuerySuccess($stmt); // 再次실행 결과를 확인하십시오
echo "데이터 삽입이 성공적으로 삽입됩니다!";
} catch (Exception $e) {
echo "실수: " . $e->getMessage();
}
?>
위 코드에서 AssertQuerySuccess () 함수는 데이터베이스 작업이 성공했는지 확인합니다. 작업이 실패하면 예외가 발생하여 필요한 경우 그에 따라 처리하고 처리 할 수 있습니다.
때로는 데이터베이스 작업이 실패하는 데 여러 가지 이유가있을 수 있습니다. 예를 들어 SQL 구문 오류, 데이터베이스 연결 문제 또는 서버 오류 일 수 있습니다. mysqli_stmt :: $ 오류 속성에서 오류 메시지를 확인하면 다른 오류 유형을 기반으로 해당 측정 값을 사용할 수 있습니다.
<?php
if ($stmt->error) {
// 处理特定的실수
switch ($stmt->errno) {
case 1062:
echo "실수:중복 항목!";
break;
case 1049:
echo "실수:알 수없는 데이터베이스!";
break;
default:
echo "数据库실수: " . $stmt->error;
}
}
?>
데이터베이스 오류 처리에 MySQLI_STMT :: $ 오류를 사용하면 문제를 찾는 데 효과적으로 문제를 해결하고 응용 프로그램이 빠르게 응답하고 데이터베이스 작업이 실패 할 때 적절한 조치를 취할 수 있는지 확인할 수 있습니다. 좋은 오류 어설 션 및 예외 처리 메커니즘을 통해 프로그램의 견고성과 유지 가능성이 크게 향상되었습니다.
이 기사에서는 오류 어설 션에 mysqli_stmt :: $ 오류를 사용하는 방법, 데이터베이스 작업에서 일반적인 오류를 처리하는 방법, 예외 처리를 통해 코드의 견고성을 더욱 향상시키는 방법을 설명합니다. 이 기사가 PHP 프로젝트에서 데이터베이스 관련 오류를 더 잘 처리하는 데 도움이되기를 바랍니다.