Php 保存序列化列中的每个值并将其格式化存储

Php 保存序列化列中的每个值并将其格式化存储,php,mysql,Php,Mysql,例如,我有一列“兴趣”,其中一行包含 $serializedResponse = a:2:{i:0;s:11:"Apple";i:1;s:7:"Pear";} 我想将值保存在php变量中,如: $formatedVariable = "(Apple%|Pear%)" 为什么?? 因为我想从json变量中获取一些名称,然后使用这些单词作为PHP/MySQL的搜索条件(类似于“(AA%| BBB%| CCC%”) 我知道我必须做: $unserializedReponse = unseriali

例如,我有一列“兴趣”,其中一行包含

$serializedResponse = a:2:{i:0;s:11:"Apple";i:1;s:7:"Pear";}
我想将值保存在php变量中,如:

$formatedVariable = "(Apple%|Pear%)"
为什么?? 因为我想从json变量中获取一些名称,然后使用这些单词作为PHP/MySQL的搜索条件(类似于“(AA%| BBB%| CCC%”)

我知道我必须做:

$unserializedReponse = unserialize($serializedResponse)

然后,对于数组中的每个值,将它们存储在一个带有格式化选项的新变量中,这样我就可以正确地使用搜索查询了。(某种程度上我无法理解)。非常感谢:)

假设$\u REQUEST等于$\u REQUEST='[“一个值”,“另一个值”]

这将把查询格式化为像“%a值%”这样的兴趣或像“%另一个值%”这样的兴趣

<?php
// init
include_once 'db.php'; // connects to db

// gets each keyword
$resultVariable = json_decode($_REQUEST[interests]); // get values to search (orginial: json file)

// sets query
$formatedVariable = "SELECT id,name FROM users WHERE city = '$_REQUEST[city]' AND interests LIKE '%".implode("%' OR interests LIKE '%", $resultVariable)."%'"; // create a search condition for every keyword

$sql = $conn->prepare($formatedVariable); // search from the query
$sql->execute(); // execute query
$array = $sql->fetchAll(); // response

print_r(json_encode($array));

$conn = null;
?>

假设$\u REQUEST等于$\u REQUEST='[“一个值”,“另一个值”]

这将把查询格式化为像“%a值%”这样的兴趣或像“%另一个值%”这样的兴趣

<?php
// init
include_once 'db.php'; // connects to db

// gets each keyword
$resultVariable = json_decode($_REQUEST[interests]); // get values to search (orginial: json file)

// sets query
$formatedVariable = "SELECT id,name FROM users WHERE city = '$_REQUEST[city]' AND interests LIKE '%".implode("%' OR interests LIKE '%", $resultVariable)."%'"; // create a search condition for every keyword

$sql = $conn->prepare($formatedVariable); // search from the query
$sql->execute(); // execute query
$array = $sql->fetchAll(); // response

print_r(json_encode($array));

$conn = null;
?>

您的问题到底是什么?在数组中使用变量作为查询中的搜索条件?就像在
中使用
?是的,这可能会起作用
$formattedvariable='('.introde('%|',$unserializedResponse)。'%')
但您可能也想引用这些值。您的问题是什么?使用数组中的变量作为查询中的搜索条件?就像在
中使用
?是的,这可能会起作用
$formattedvariable='('.introde('%|',$unserializedResponse)。'%')但您可能也希望引用这些值。