2009-12-04 4 views
0
문자열을 바인딩하는 방법

다음 쿼리가 있습니다 (작동하지 않음).
%로 기존 문자열 내부에서 문자열을 입찰하려면 어떻게해야합니까 (%는 문제가 아니지만 실제로는 확실하지 않습니다). 이 같은PDO에서 %

$sql="SELECT * FROM T WHERE f LIKE '%:bindParamString%'"; 

답변

2

당신은 당신의 가치에 % 기호를 포함 할 수 있습니다

$param = '%'.$param.'%'; 
$query = "SELECT * FROM T WHERE f LIKE ?"; 

또는 데이터베이스에서 문자열을 연결하는 SQL을 사용 : 다음 대신 =LIKE을 사용하는 것도

## if you have mysql 
$query = "SELECT * FROM T WHERE f LIKE CONCAT('%', ?, '%')"; 

그것을 좋은 아이디어를 당신 ' 패턴으로 다시 검색.

2

시도 뭔가 자세한 정보에 대한

$db = new PDO(...); 

$sql = "SELECT * FROM T WHERE f=?"; 
$stmt = $db->prepare($sql); 

$val = "%{$val}%"; 
$stmt->bindParam(1, $val, PDO::PARAM_STR); 

, 나는 관련 doc page을 읽는 것이 좋습니다!

관련 문제