MySQLi 준비된 문: 종합 개요
MySQLi 준비된 문은 데이터베이스 상호 작용에 향상된 보안과 효율성을 제공합니다. 그러나 이를 시작하는 것은 어려울 수 있습니다.
오류: 언바운드 문 사용
제공된 코드에서 오류는 준비된 문 "$을 실행하려고 시도할 때 발생합니다. 매개변수를 바인딩하지 않고 stmt"를 실행합니다. MySQLi의 "mysqli_stmt_prepare()" 메소드는 준비된 문을 나타내는 객체를 반환하지만 "mysqli_stmt_bind_param()"으로 자리 표시자를 바인딩하는 것은 이를 실행하기 전에 중요한 단계입니다.
준비된 문 바인딩 구문:
$stmt->bind_param('data_type', $variable);
이 예에서 데이터는 유형은 's'(문자열) 및 'i'(정수)이고 그 뒤에 삽입할 값이 포함된 PHP 변수가 옵니다.
$name = 'one'; $age = 1; $stmt->bind_param('si', $name, $age);
매개변수가 바인딩되면 실행이 진행될 수 있습니다.
$stmt->execute();
전체 예시
다음은 연결, 삽입 및 삽입을 포함하는 포괄적인 예시입니다. 준비된 문을 사용한 오류 처리 선택:
connect_error) { die('Failed to connect: ' . $mysqli->connect_error); } // Insertion $stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?, ?)"); $stmt->bind_param('si', $name, $age); $name = 'Bob'; $age = 30; $stmt->execute(); // Selection $stmt = $mysqli->prepare("SELECT * FROM users WHERE name = ?"); $stmt->bind_param('s', $name); $name = 'Bob'; $stmt->execute(); $result = $stmt->get_result(); // Fetch and display results while ($row = $result->fetch_assoc()) { printf("%s (%s)\n", $row['name'], $row['age']); } // Closing $stmt->close(); $mysqli->close(); ?>
이러한 지침을 따르면 PHP에서 MySQLi로 준비된 문을 효과적으로 활용하여 보안 및 데이터베이스 상호 작용 효율성을 향상시킬 수 있습니다.
위 내용은 데이터베이스 보안 및 효율성을 향상시키기 위해 MySQLi 준비된 명령문을 효과적으로 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!