Как подготовить запрос PHP postgreSQL с ключевым словом LIKE - PullRequest
0 голосов
/ 20 февраля 2020

Я использую Symfony4 и postgreSQL базу данных. Я работаю над поисковой системой. Я хотел бы проверить, совпадает ли что-то со строкой, которую я посылаю с ajax в моей базе данных. Но запрос SQL всегда возвращает false. Как мне сделать, чтобы этот код работал? Спасибо за помощь:)

 public function search(Request $request) : Response {

        if($ajaxRequest = $request->getContent())
        {
            $requestContent = json_decode($ajaxRequest, true);

            $content = $requestContent["content"];

            $connexionParams = "host=localhost port=5432 dbname=mydb user=myuser password=mypassword";

            $db = pg_connect($connexionParams);

            $sql = pg_prepare($db, 'search_query', "SELECT nom, lon, lat, id FROM site WHERE nom LIKE $1 OR id LIKE $2");

            $result = pg_execute($db, 'search_query', array($content, $content));

            var_dump($content, pg_fetch_row($result), $result);

            $results = array();

            while($row = pg_fetch_row($result)) {
                $results[] = $row; 
            }  

            if(($results)) {
                return new JsonResponse([
                    'result' => true,
                    'results' => json_encode($results),
                ]);
            } else {
                return new JsonResponse([
                    'result' => false,
                ]);
            }
        }
    }

1 Ответ

0 голосов
/ 20 февраля 2020

false означает сбой, не пустые нулевые попадания, как указано здесь . Скорее всего, в вашем SQL синтаксисе или данных соединения произошла ошибка. Возможно pg_last_error помогает найти ошибку:


if ($result === false) {
 echo pg_last_error($db);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...