将行与数组中的元素匹配
Match rows against elements in an array
我有一个 sql 请求使用 php 数组来查找所有出现的搜索栏。
我做不到。这是我的代码:
$texte = $_POST['texte'];
$texte = explode(" ", $texte);
$query_parts = array();
//Proximité
foreach ($texte as $value) {
$value = "%".$value."%";
}
$sql = "SELECT * FROM PROXIMITE WHERE titrefr LIKE ':texte'";
$req = $bd->requete_obj($sql, array('texte'=>$texte));
while($select = $req->fetch()){
error_log('Test');
}
你的 foreach 循环实际上并没有修改变量,因为它们是通过值传递的——意思是一个副本。
要修改它们,您必须通过引用传递它们:
foreach ($texte as &$value) {
$value = "%".$value."%";
}
这样,数组中的实际值就会被操纵。
其次:你不能给你的数据库一个数组作为参数。相反,您可以遍历数组。如果你在你的第一个循环中实现它,你甚至不必再使用引用:
$sql = "SELECT * FROM PROXIMITE WHERE titrefr LIKE :texte";
foreach ($texte as $value) {
$value = "%".$value."%";
$req = $bd->requete_obj($sql, array('texte'=>$value));
while($select = $req->fetch()){
error_log('Test');
}
}
我有一个 sql 请求使用 php 数组来查找所有出现的搜索栏。
我做不到。这是我的代码:
$texte = $_POST['texte'];
$texte = explode(" ", $texte);
$query_parts = array();
//Proximité
foreach ($texte as $value) {
$value = "%".$value."%";
}
$sql = "SELECT * FROM PROXIMITE WHERE titrefr LIKE ':texte'";
$req = $bd->requete_obj($sql, array('texte'=>$texte));
while($select = $req->fetch()){
error_log('Test');
}
你的 foreach 循环实际上并没有修改变量,因为它们是通过值传递的——意思是一个副本。 要修改它们,您必须通过引用传递它们:
foreach ($texte as &$value) {
$value = "%".$value."%";
}
这样,数组中的实际值就会被操纵。
其次:你不能给你的数据库一个数组作为参数。相反,您可以遍历数组。如果你在你的第一个循环中实现它,你甚至不必再使用引用:
$sql = "SELECT * FROM PROXIMITE WHERE titrefr LIKE :texte";
foreach ($texte as $value) {
$value = "%".$value."%";
$req = $bd->requete_obj($sql, array('texte'=>$value));
while($select = $req->fetch()){
error_log('Test');
}
}