mysqli::prepare

(PHP 5, PHP 7, PHP 8)

mysqli :: prepare - mysqli_prepare - 실행을 위한 SQL 문 준비


설명

객체 지향 스타일

public mysqli::prepare(string $query): mysqli_stmt|false

절차적 스타일

mysqli_prepare(mysqli $mysql, string $query): mysqli_stmt|false

SQL 쿼리를 준비하고 명령문에 대한 추가 작업에 사용할 명령문 핸들을 반환합니다. 쿼리는 단일 SQL 문으로 구성되어야 합니다.

명령문 템플릿에는 자리 표시자라고도 하는 0개 이상의 물음표(?) 매개변수 마커가 포함될 수 있습니다. 매개변수 마커는 명령문을 실행하기 전에 mysqli_stmt_bind_param()을 사용하여 애플리케이션 변수에 바인딩되어야 합니다.


매개변수

mysql
절차적 스타일 전용: mysqli_connect() 또는 mysqli_init()에 의해 반환된 mysqli 객체
query
쿼리, 문자열. 단일 SQL 문으로 구성되어야 합니다.

SQL문은 적절한 위치에 물음표(?) 문자로 표시되는 매개변수 표시문자를 0개 이상 포함할 수 있습니다.

메모:

마커는 SQL 문의 특정 위치에서만 유효합니다. 예를 들어, INSERT 문의 VALUES() 목록(행에 대한 열 값 지정) 또는 WHERE 절의 열과 비교하여 비교 값을 지정할 수 있습니다.

그러나 식별자(예: 테이블 또는 열 이름)에 대해 또는 = 등호와 같은 이항 연산자의 두 피연산자를 모두 지정하는 데에는 허용되지 않습니다. 후자의 제한은 매개변수 유형을 결정하는 것이 불가능하기 때문에 필요합니다. 일반적으로 매개변수는 DML(데이터 조작 언어) 문에서만 유효하고 DDL(데이터 정의어) 문에서는 유효하지 않습니다.


반환 값

mysqli_prepare()는 명령문 객체를 반환하거나 오류가 발생하면 false를 반환합니다.


Examples

예제 #1 mysqli::prepare() 예제

객체 지향 스타일

                  
<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* create a prepared statement */
$stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?");

/* bind parameters for markers */
$stmt->bind_param("s", $city);

/* execute query */
$stmt->execute();

/* bind result variables */
$stmt->bind_result($district);

/* fetch value */
$stmt->fetch();

printf("%s is in district %s\n", $city, $district);
                  
                

절차적 스타일

                  
<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* create a prepared statement */
$stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?");

/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "s", $city);

/* execute query */
mysqli_stmt_execute($stmt);

/* bind result variables */
mysqli_stmt_bind_result($stmt, $district);

/* fetch value */
mysqli_stmt_fetch($stmt);

printf("%s is in district %s\n", $city, $district);
                  
                

위의 예는 다음을 출력합니다.

Amersfoort is in district Utrecht
                

기타