이것은 내 코드입니다. 이 SQL 쿼리는 phpmyadmin에서 제대로 작동하지만 원하는대로 2 개의 호텔을 반환하지만 PHP 코드에서는 모든 호텔을 반환합니다. 왜 이것이 작동하지 않습니까?LIKE WildCard가있는 SQL 코드가 제대로 작동하지 않습니다.
$search_text = "%". $search_text ."%";
$query = "SELECT name,country,province,town FROM Hotel WHERE country LIKE ? OR province LIKE ? OR town LIKE ? OR name LIKE ? ORDER BY name DESC";
$stmt = Database::$connection->prepare($query);
$stmt -> bind_param('ssss',$search_text , $search_text, $search_text, $search_text);
$stmt -> execute();
$result = $stmt -> get_result();
$searched = null;
$count = 0;
while($row = $result -> fetch_array(MYSQLI_NUM)){
$searched[$count][0] = $row[0];
$searched[$count][1] = $row[1];
$searched[$count][2] = $row[2];
$searched[$count][3] = $row[3];
$count++;
}
$stmt-> close();
return $searched;
이 첫 번째 매개 변수는 무엇입니까 'ssss'입니까? 그리고 왜 5 params하지만 쿼리에서 단 4 자리 표시 자? – RobP
@RobP http://php.net/manual/en/mysqli-stmt.bind-param.php 4 개의 문자열을 나타냅니다. – DickieBoy
@RobP 4 개의 매개 변수를 계산합니까? ssss는 [Docs] (http://php.net/manual/en/mysqli-stmt.bind-param.php) 및 [Convention] (http : // stackoverflow)에 따라 'string, string, string, string' .com/questions/18426172/what-do-bind-param-accomplish) – StuartLC