LIKE를 사용하여 조각을 조회하는 MySQL 쿼리를 실행하려고합니다.배열을 사용하여 동적 MySQL 쿼리 만들기 - PHP
테이블 구조 : TableExample
id name piece
0 jon piece0
1 james piece3
2 sarah piece6
의 I 지금까지 가지고 냈다 :
$pieces = "piece0 piece1"; //variable
$piecearrayexplode = explode(" ", $pieces);
$piece0 = $piecearrayexplode[0];
$piece1 = $piecearrayexplode[1];
$sql = "SELECT * FROM TableExample WHERE piece LIKE '%$piece0%' OR pieces LIKE '%$piece1%'";
내가 가진 문제는 $ 개 변수임을 내가 자동으로 동적으로 $ SQL을 필요로하고 올바른 수의 LIKE 문을 특징으로합니다.
예. $ pieces = "piece0 piece1 piece2"이라면 $ SQL을 다음과 같이 입력하십시오 :
$sql = "SELECT * FROM TableExample WHERE piece LIKE '%$piecearrayexplode[0]%' OR pieces LIKE '%$piecearrayexplode[1]%' OR pieces LIKE '%$piecearrayexplode[2]%'";
참고 : $ pieces는 항상 공백으로 구분됩니다.
단어 수를 계산할 수 있습니다.
$count = str_word_count($pieces);
나는 어디에서부터 갈지 모른다.
나는 좋아하는 연속과 같은 1이 아닌 하나의 문이기 때문에 내가 무엇을 찾고 될 것 같지 않습니다이 Create a dynamic mysql query using php variables
보고했다. 내가 여기서 뭔가를 놓치고 있니?
$foo = '... list of pieces ...';
$parts = explode(' ', $foo);
$likes = array();
foreach($parts as $part) {
$likes[] = "piece LIKE '%$part%'";
}
$sql = "SELECT ... WHERE " . implode(' or ', $likes);
을하지만이 sql injection attacks에 취약 참고 :