我尝试使用带有jQuery自动完成功能的系统来提供listview 这是我的PHP代码,除了我找不到问题,我在控制台中没有错误,但我似乎无法获取数据库中的数据。它找不到我的信件。
条件"其中"没问题和检查(我甚至直接尝试SQL查询进入phpMyAdmin,它可以工作,但不能通过php文件)
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=schoolby_fr', '*****', '*****');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$term = "Malrau";
$pays = "France";
$dept = "Vosges";
$tipe = "Lycée";
$requete = $bdd->prepare('SELECT * FROM school WHERE s_pays="'.$pays.'" AND s_dept="'.$dept.'" AND s_type="'.$tipe.'" AND s_ecole LIKE :term');
$requete->execute(array('term' => '%'.$term.'%'));
$array = array();
while($donnee = $requete->fetch())
{
array_push($array, $donnee['s_ecole']);
}
echo json_encode($array);
?>
EDIT 22/09/2014
如果我自愿回忆条件$pays
和$tipe
,但离开$term
和$dept
,我想告诉你我得到了什么。
因为它不适用于所有条件。
答案 0 :(得分:0)
如果你通过取出变量来简化你的准备陈述并对值进行硬编码,那么你可以确定它是否是变量
答案 1 :(得分:0)
您应该以正确的方式准备查询,不需要循环,并始终打开错误模式。
<?php
try{
$bdd = new PDO('mysql:host=localhost;dbname=schoolby_fr', '*****', '*****');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$term = "Malrau";
$pays = "France";
$dept = "Vosges";
$tipe = "Lycée";
$query = 'SELECT *
FROM school
WHERE s_pays= :pays
AND s_dept= :dept
AND s_type= :tipe
AND s_ecole LIKE :term';
$requete = $bdd->prepare($query);
$requete->execute(array(':pays' => $pays,
':dept' => $dept,
':tipe' => $tipe,
':term' => '%'.$term.'%',
));
$donnees = $requete->fetchAll();
//var_dump($donnees);
echo json_encode($array);
}
catch (PDOException $e){
die('Erreur : ' . $e->getMessage());
}