실제 개발에서 데이터베이스 쿼리를 실행할 때 종종 쿼리가 성공했는지 판단해야합니다. 쿼리가 실패하면 시스템의 정상 작동에 영향을 줄뿐만 아니라 프로그램 예외 또는 데이터 불일치로 이어질 수 있습니다. 따라서 이러한 실패를 포착하고 처리하기 위해 효과적인 결함 허용 메커니즘을 채택하는 것이 매우 중요합니다. MySQLI_STMT :: $ 오류 함수는 개발자가 SQL 쿼리 실패에 대한 자세한 정보를 얻을 수 있도록 도와 주므로 시스템의 정상적인 작동을 복원하기 위해 해당 조치를 취할 수 있습니다.
mysqli_stmt :: $ error는 mysqli의 mysqli_stmt 클래스의 속성입니다. SQL 문을 실행 한 후 MySQL 쿼리의 오류 메시지가 반환됩니다. 쿼리에 오류가 없으면 빈 문자열이 반환됩니다. 이 속성을 통해 쿼리가 실패하면 오류의 특정 원인을 얻을 수 있습니다.
다음은 mysql 쿼리 실패를 처리하기 위해 mysqli_stmt :: $ 오류를 사용하는 방법을 보여주는 기본 예입니다.
<?php
// 데이터베이스 연결
$host = 'localhost';
$username = 'root';
$password = '';
$database = 'test_db';
$conn = new mysqli($host, $username, $password, $database);
// 연결이 성공했는지 확인하십시오
if ($conn->connect_error) {
die('연결이 실패했습니다: ' . $conn->connect_error);
}
// 준비하다 SQL 질문
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $conn->prepare($sql);
// 检查준비하다语句是否成功
if (!$stmt) {
die('SQL 语句준비하다失败: ' . $conn->error);
}
// 绑定参数并执行질문
$id = 1;
$stmt->bind_param("i", $id);
if (!$stmt->execute()) {
// 질문失败,출력 오류 메시지
echo '질문失败: ' . $stmt->error;
} else {
// 질문成功,처리 결과
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo "사용자 ID: " . $row['id'] . "<br>";
}
}
// 연결을 닫으십시오
$stmt->close();
$conn->close();
?>
데이터베이스에 연결하십시오 . 먼저 MySQLI 클래스를 사용하여 데이터베이스 연결을 만듭니다. 연결에 실패하면 오류 메시지를 직접 출력하고 종료하십시오.
준비 SQL 문 : $ conn-> repay ($ sql)를 사용하여 쿼리 문을 준비합니다. 명령문 준비가 실패하면 $ conn-> 오류를 사용하여 오류 메시지를 받으십시오.
매개 변수 바인딩 및 실행 쿼리 : 쿼리를 실행하기 전에 쿼리 매개 변수를 바인딩하고 실행 중에 성공했는지 확인합니다. execute () 가 false를 반환하면 쿼리에 실패한 다음 $ stmt-> 오류를 사용하여 오류 정보를 얻고 출력합니다.
쿼리 성공 : 쿼리가 성공하면 결과는 get_result () 를 통해 얻어지고 표시됩니다.
실제 개발에는 종종 더 자세한 오류 처리가 필요합니다. 위의 코드에서는 오류 메시지를 간단히 출력하지만 프로덕션 환경에서는 오류 메시지가 사용자에게 직접 노출되어서는 안되지만 로그인하고 사용자에게 친숙한 프롬프트를 제공해야합니다.
<?php
// 오류 로그 함수
function logError($message) {
$logFile = 'error_log.txt';
$date = date('Y-m-d H:i:s');
file_put_contents($logFile, "[$date] $message\n", FILE_APPEND);
}
// 执行질문时,실패하면,로그 로그 로그 오류 메시지를 기록합니다
if (!$stmt->execute()) {
logError('질문失败: ' . $stmt->error);
echo '질문失败,나중에 다시 시도하십시오。';
}
?>
이 예에서 쿼리가 실패하면 Error_Log.txt 라는 파일에 오류 메시지가 로그인되며 사용자에게 직접 노출되지 않습니다. 이를 통해 개발자는 사용자 경험에 영향을 미치지 않고 문제가 발생할 때 오류를 추적 할 수 있습니다.
MySQLI_STMT :: $ 오류를 사용하면 MySQL 쿼리가 실패하면 오류 정보를 쉽게 캡처하고 이러한 오류 정보를 기반으로 해당 측정 값을 사용할 수 있습니다. 단순히 오류 메시지를 출력하든 로그 파일에 오류를 기록하든 시스템의 안정성과 신뢰성을 효과적으로 향상시킬 수 있습니다. 우수한 결함 허용 메커니즘은 오류가 발생할 때 개발자가 문제를 신속하게 찾는 데 도움이 될뿐만 아니라 사용자 경험을 향상시키고 문제가 발생할 때 시스템이 충돌하지 않도록 보장 할 수 있습니다.