我正在尝试在MySQL查询条件下选择精确的JSON值,目前我正在使用类似,但它可以返回false false。
我的代码是::
$id='1';
JSON数据示例:: ["1","12","38"]
$sql="SELECT * FROM `posts` WHERE `json_column` LIKE '%".$id."%' ";
使用此查询,它返回1和12。我只能得到1?
请注意额外的引号:
$sql="SELECT * FROM posts WHERE json_column LIKE '%"$id"%'";
但是,如果$id
来自用户输入,则可以向SQL注入。小心。
更安全的方法是使用PHP准备的参数化查询如下:
$stmt = $dbh->prepare("SELECT * FROM posts WHERE json_column LIKE '%"?"%'");
$stmt->bindParam(1, $id);