PHP에서 MySQLI 는 일반적으로 사용되는 데이터베이스 확장자로 데이터베이스와 상호 작용하는 여러 가지 방법을 제공합니다. MySQLI_STMT 클래스는 MySQLI 확장의 일부이며 전처리 문을 실행하는 데 사용됩니다. 일반적인 요구 사항은 SQL 쿼리를 실행할 때 오류 메시지를 캡처하고 표시하여 개발자가 문제를 해결하고 수정하는 데 도움이됩니다. 이 기사에서는 mysqli_stmt :: $ 오류를 통해 SQL 문을 실행할 때 상세한 오류 정보를 얻는 방법을 소개합니다.
전처리 명령문을 사용할 때 MySQLI_STMT 객체를 통해 쿼리를 실행할 수 있습니다. mysqli_stmt :: $ 오류 변수는 쿼리를 실행할 때 오류 정보를 저장합니다. SQL 실행이 성공하면 값은 빈 문자열입니다. SQL 실행이 실패하면 오류 설명이 반환됩니다.
다음은 SQL 쿼리를 실행할 때 MySQLI_STMT :: $ 오류를 사용하는 방법을 보여주는 간단한 예입니다.
<?php
// 데이터베이스 연결을 만듭니다
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
// 준비하다 SQL 성명
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $mysqli->prepare($sql);
// 检查성명是否준비하다成功
if ($stmt === false) {
die("준비하다성명失败: " . $mysqli->error);
}
// 바인딩 매개 변수
$id = 1;
$stmt->bind_param("i", $id);
// 쿼리를 실행하십시오
if (!$stmt->execute()) {
echo "구현하다 SQL 성명时出错: " . $stmt->error;
} else {
echo "쿼리 성공!";
}
// 关闭성명和连接
$stmt->close();
$mysqli->close();
?>
코드에서 $ stmt-> 오류는 SQL 쿼리가 실행될 때 오류 정보를 캡처하는 데 사용됩니다.
쿼리 실행이 실패하면 $ stmt-> 오류 에 특정 오류 설명이 포함되어 개발자가 문제를 찾는 데 도움이 될 수 있습니다.
쿼리가 성공적으로 실행되면 $ stmt-> 오류가 빈 문자열을 반환합니다.
$ stmt-> 오류를 통해 오류 정보를 얻은 후 다른 오류 정보를 기반으로 다른 디버깅 측정을 할 수 있습니다. 일반적인 오류에는 SQL 구문 오류, 테이블 또는 필드 이름 철자 오류 또는 매개 변수 바인딩 오류가 포함될 수 있습니다.
생산 환경에서 최종 사용자에게 오류 정보를 노출하지 않기 위해 개발자는 일반적으로 페이지에 직접 표시되는 대신 오류 정보를 로그 파일에 로그인합니다.
<?php
// 데이터베이스 연결을 만듭니다
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
// 준비하다 SQL 성명
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $mysqli->prepare($sql);
// 检查성명是否준비하다成功
if ($stmt === false) {
// 로그 오류 로그
error_log("준비하다 SQL 성명失败: " . $mysqli->error, 3, "/path/to/error_log.txt");
die("준비하다성명失败");
}
// 바인딩 매개 변수
$id = 1;
$stmt->bind_param("i", $id);
// 쿼리를 실행하십시오
if (!$stmt->execute()) {
// 로그 오류 로그
error_log("구현하다 SQL 성명时出错: " . $stmt->error, 3, "/path/to/error_log.txt");
echo "쿼리가 실패했습니다,로그 파일을 확인하십시오。";
} else {
echo "쿼리 성공!";
}
// 关闭성명和连接
$stmt->close();
$mysqli->close();
?>
쿼리가 실행되면 error_log () 함수는 로그 파일에 오류 메시지를 씁니다. 이렇게하면 자세한 오류 정보를 최종 사용자에게 노출시키지 않고 응용 프로그램 보안을 향상시킬 수 있습니다.
오류 로그 파일은 안전한 위치에 배치해야하며 개발자 또는 관리자에게만 액세스 할 수 있습니다.
MySQLI_STMT :: $ 오류를 통해 SQL 쿼리를 실행할 때 세부 오류 정보를 쉽게 얻을 수있어 문제를 신속하게 디버깅하고 해결할 수 있습니다. 개발자는 오류 메시지를 직접 표시할지 여부를 결정하거나 실제 요구에 따라 로그 파일에 녹음 할 수 있습니다. MySQLI 확장을 사용할 때, 오류 정보를 캡처하는 것은 매우 중요한 작업이며 응용 프로그램의 견고성과 보안을 효과적으로 향상시킬 수 있습니다.