SQLite3Stmt::bindValue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::bindValue — 매개변수 값을 명령문 변수에 바인딩합니다.


설명

public SQLite3Stmt::bindValue(string|int $param, mixed $value, int $type = SQLITE3_TEXT): bool

매개변수 값을 명령문 변수에 바인딩합니다.

주의 PHP 7.2.14 및 7.3.0 이전에는 각각 문이 실행되면 바인딩된 매개변수의 값을 변경할 수 있도록 SQLite3Stmt::reset()을 호출해야 합니다.


매개변수

param
값이 바인딩되어야 하는 명령문 변수를 식별하는 문자열(명명된 매개변수의 경우) 또는 int(위치 매개변수의 경우)입니다. 명명된 매개변수가 콜론(:) 또는 at 기호(@)로 시작하지 않으면 콜론(:)이 자동으로 앞에 붙습니다. 위치 매개변수는 1로 시작합니다.
value
명령문 변수에 바인딩할 값입니다.
type
바인딩할 매개변수의 데이터 유형입니다.
  • SQLITE3_INTEGER: 값은 부호 있는 정수이며 값의 크기에 따라 1, 2, 3, 4, 6 또는 8바이트에 저장됩니다.
  • SQLITE3_FLOAT: 값은 8바이트 IEEE 부동 소수점 숫자로 저장된 부동 소수점 값입니다.
  • SQLITE3_TEXT: 값은 데이터베이스 인코딩(UTF-8, UTF-16BE 또는 UTF-16-LE)을 사용하여 저장된 텍스트 문자열입니다.
  • SQLITE3_BLOB: 값은 입력된 그대로 정확히 저장된 데이터 덩어리입니다.
  • SQLITE3_NULL: 값이 NULL 값입니다.

PHP 7.0.7부터 type이 생략되면 var의 유형에서 자동으로 감지됩니다. bool과 int는 SQLITE3_INTEGER로, float는 SQLITE3_FLOAT로, null은 SQLITE3_NULL로, 나머지는 모두 SQLITE3_TEXT로 처리됩니다. 이전에는 type이 생략된 경우 기본적으로 SQLITE3_TEXT로 설정되었습니다.

메모: varnull이면 주어진 type에 관계없이 항상 SQLITE3_NULL로 처리됩니다.


반환 값

값이 명령문 변수에 바인딩되면 true를 반환하고 실패하면 false를 반환합니다.


변경 로그

버전 설명
7.4.0 param은 이제 @param 표기법도 지원합니다.

Examples

예제 #1 SQLite3Stmt::bindValue() 예제

                  
<?php
$db = new SQLite3(':memory:');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray(SQLITE3_ASSOC));
?>
                  
                

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

array(1) {
  ["bar"]=>
  string(14) "This is a test"
}
                

기타