PHP에서 MySQLI :: repay ()는 MySQL 데이터베이스를 사용할 때 SQL 문을 준비하는 데 매우 중요한 기능입니다. 대부분의 경우, 특히 데이터베이스 작업이 실패한 경우 SQL 문의 준비 프로세스가 잘못되지 않도록하고자합니다. mysqli :: $ errno는 오류가 있는지 여부를 결정하는 데 사용할 수있는 속성입니다. Prepar () 메소드가 성공적으로 실행되는지 여부를 결정하는 데 도움이 될 수 있습니다.
mysqli :: prepar ()는 SQL 문을 전제하는 데 사용되는 함수입니다. 전처리의 장점은 SQL 주입을 방지하고 데이터베이스 작업의 효율성을 향상시킬 수 있다는 것입니다. 실제로 사용하면 일반적으로 MySQL 서버에 의해 구문 분석되고 최적화되는 repay () 함수를 통해 SQL 문을 MySQL 서버에 보냅니다.
예를 들어, 다음 코드는 mysqli :: prepar ()를 사용하여 SQL 문을 준비하는 방법을 보여줍니다.
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
// Check connection
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");
?>
mysqli :: prepar ()를 사용하는 경우 SQL 문에 오류가 있으면 repar ()가 false를 반환하고 mysqli :: $ errno를 확인하여 자세한 오류 정보를 얻을 수 있습니다.
<?php
// 준비하다 SQL 성명
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");
if ($stmt === false) {
// 만약에 prepare() 반품 false,그것은 의미합니다 SQL 성명有错误
echo "MySQLi prepare failed. Error number: " . $mysqli->errno . "\n";
echo "Error message: " . $mysqli->error . "\n";
} else {
// 만약에 prepare() 성공,추가 작업을 수행하십시오
echo "SQL prepared successfully!\n";
}
?>
이 예에서는 repary ()가 실패하면 $ mysqli-> errno가 오류 코드를 반환합니다. 이 오류 코드를 사용하여 실패의 이유를 이해할 수 있습니다. $ mysqli-> 오류는 개발자가 문제를 신속하게 찾을 수 있도록 특정 오류 정보를 제공합니다.
mysqli :: prepar () 실행 실행이 실패하면 mysqli :: $ errno가 0이 아닌 값으로 설정됩니다. 몇 가지 일반적인 오류 코드는 다음과 같습니다.
1049 : 데이터베이스가 존재하지 않습니다.
1054 : 필드가 존재하지 않습니다 (예 : Select에 사용 된 열 이름은 철자가 잘못 표시됨).
1064 : SQL 구문 오류.
1146 : 테이블이 존재하지 않습니다.
이 오류 코드를 사용하여 다음과 같은 특정 문제를 결정할 수 있습니다.
if ($stmt === false) {
switch ($mysqli->errno) {
case 1049:
echo "데이터베이스가 존재하지 않습니다!";
break;
case 1064:
echo "SQL 구문 오류!";
break;
default:
echo "알 수없는 오류: " . $mysqli->errno;
break;
}
}
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
// 연결을 확인하십시오
if ($mysqli->connect_errno) {
echo "연결이 실패했습니다: " . $mysqli->connect_error;
exit();
}
// 준비하다 SQL 성명
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");
if ($stmt === false) {
// 만약에 prepare() 반품 false,오류 메시지를 인쇄합니다
echo "MySQLi prepare failed. Error number: " . $mysqli->errno . "\n";
echo "Error message: " . $mysqli->error . "\n";
} else {
// 만약에성공
echo "SQL prepared successfully!\n";
$stmt->close();
}
$mysqli->close();
?>