如何使用'LIKE'关键字准备PHP postgreSQL请求

问题描述 投票:0回答:1

我正在使用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,
                ]);
            }
        }
    }
php sql postgresql symfony prepared-statement
1个回答
0
投票

false表示失败,而不是如here所述的空零命中。您的SQL语法或连接数据很可能有错误。也许pg_last_error有助于发现错误:


if ($result === false) {
 echo pg_last_error($db);
}
© www.soinside.com 2019 - 2024. All rights reserved.