>  기사  >  백엔드 개발  >  PHP에서 BindParam과 BindValue의 차이점

PHP에서 BindParam과 BindValue의 차이점

藏色散人
藏色散人원래의
2019-02-22 10:23:023726검색

PHP에서 BindParam과 BindValue의 차이점

PDOStatement::bindParam() 함수는 매개변수를 지정된 변수 이름에 바인딩하는 데 사용되는 PHP의 내장 함수입니다. 이 함수는 변수를 바인딩하고 해당 값을 입력으로 전달하며 연결된 인수 태그(있는 경우)의 출력 값을 받습니다.

구문: ​​

bool PDOStatement::bindParam
( $parameter, $variable, $data_type, $length, $driver_options )

매개변수: 이 함수는 아래 설명과 같이 위에 언급된 5개의 매개변수를 허용합니다.

$parameter: 이름 자리 표시자를 사용하여 명령문을 준비하는 데 사용되는 매개변수 식별자입니다. name 형식의 매개변수 이름입니다.

$variable: SQL 문 매개변수에 바인딩할 변수 이름을 저장하는 데 사용되는 매개변수입니다.

$data_type: PDO::PARAM_* 상수를 사용하는 매개변수의 명시적 데이터 유형입니다.

$length: 이 매개변수는 데이터 유형의 길이를 저장하는 데 사용됩니다.

$driver_options: 이 매개변수는 수행해야 하는 작업을 저장합니다.

반환 값: 이 함수는 성공하면 True를, 실패하면 False를 반환합니다.

프로시저:

<?php   
  
// 设置PDO连接 
$db = new PDO(&#39;mysql:host=localhost;dbname=phps&#39;,&#39;root&#39;,&#39;&#39;);  
  
// 获得用户名
$username = &#39;phpforphp&#39;; 
     
$stmt = $db->prepare("SELECT * FROM users WHERE user = :username"); 
  
// 使用bindParam函数
$stmt->bindParam(&#39;:username&#39;, $username); 
   
 $username = &#39;g4g&#39;; 
     
 $stmt->execute(); 
?>

참고: SQL 문은 'g4g'를 사용자 이름으로 사용하여 실행됩니다. 왜냐하면 사용자 이름은 실행 시 $username을 검색하고 $username의 마지막으로 알려진 값은 'g4g'이기 때문입니다.

PDOStatement::bindValue() 함수는 값을 매개변수에 바인딩하는 데 사용되는 PHP의 내장 함수입니다. 이 함수는 준비된 문에 사용되는 SQL의 해당 명명된 자리 표시자 또는 물음표 자리 표시자에 값을 바인딩합니다.

구문: ​​

bool PDOStatement::bindValue( $parameter, $value, $data_type )

Parameters: 이 함수는 아래 설명된 대로 위의 세 가지 매개변수를 허용합니다.

$parameter: 이름 자리 표시자를 사용하여 명령문을 준비하는 데 사용되는 매개변수 식별자입니다. name 형식의 매개변수 이름입니다.

$value: 바인딩된 매개변수의 값을 저장하는 데 사용되는 매개변수입니다.

$data_type: PDO::PARAM_* 상수를 사용하는 매개변수의 명시적 데이터 유형입니다.

반환 값: 이 함수는 성공하면 True를, 실패하면 False를 반환합니다.

프로시저:

<?php   
  
// 设置PDO连接
$db = new PDO(&#39;mysql:host=localhost;dbname=phps&#39;,&#39;root&#39;,&#39;&#39;);  
  
// 获得用户名
$username = &#39;phpforphp&#39;; 
    
$stmt = $db->prepare("SELECT * FROM users WHERE user = :username"); 
  
// 使用bindValue函数
$stmt->bindValue(&#39;:username&#39;, $username); 
  
$username = &#39;g4g&#39;; 
    
$stmt->execute(); 
?>

참고: 리터럴 값 "phpforphp"가 바인딩값() 함수 앞의 사용자 이름에 바인딩되었기 때문에 SQL 문은 사용자 이름으로 'g4g'를 사용하여 실행됩니다. $username에 대한 추가 변경 사항은 준비된 명령문에 반영되지 않습니다.

bindParam()과 binValue()의 차이점:

bindParam()

bindParam() 함수는 매개변수를 SQL 문의 명명된 자리 표시자 또는 물음표 자리 표시자에 바인딩합니다.

bindParam() 함수는 값 대신 변수를 전달하는 데 사용됩니다.

bindValue()

bindValue() 함수는 값을 SQL 문의 이름이나 물음표에 바인딩합니다.

bindValue() 함수는 값과 변수를 전달하는 데 사용됩니다.

추천: "PHP Tutorial"http://www.php.cn/course/list/29.html

이 글은 PHP에서 바인드파람(bindParam)과 바인드밸류(bindValue)의 차이점에 관한 것입니다. 친구들에게 도움이 되기를 바랍니다. 도움이 필요한 사람!

위 내용은 PHP에서 BindParam과 BindValue의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.