0
下面的第一個代碼就像一個魅力,我的數據庫中'postpos'表&'tpost'表之間的唯一區別就是名稱。PDO查詢不返回行
$keyword = $_POST['keyword'];
$country = "Thailand";
if($keyword === "English" || $keyword === "อังกฤษ" || $keyword === "ภาษาอังกฤษ" || $keyword === "english"){
if($keyword === "English" || $keyword === "english"){
$sub_alt = "อังกฤษ";
}
if($keyword === "อังกฤษ" || $keyword === "ภาษาอังกฤษ"){
$sub_alt = "English";
}
}
if(isset($sub_alt)){
$sql="SELECT * FROM `tpost` WHERE `subject` LIKE :search OR `subject` LIKE :search2 AND `country` LIKE :country AND date >= (DATE_SUB(CURDATE(), INTERVAL 150 DAY)) ORDER BY id DESC LIMIT 50";
} else {
$sql="SELECT * FROM `tpost` WHERE `country` LIKE :country AND `subject` LIKE :search AND date >= (DATE_SUB(CURDATE(), INTERVAL 150 DAY)) ORDER BY id DESC LIMIT 50";
}
$stmt=$dbh->prepare($sql);
$stmt->bindValue(':search','%'.$keyword.'%', PDO::PARAM_STR);
if(isset($sub_alt)){
$stmt->bindValue(':search2','%'.$sub_alt.'%', PDO::PARAM_STR);
}
$stmt->bindValue(':country','%'.$country.'%', PDO::PARAM_STR);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$result = $stmt->fetchAll();
foreach($result as $row){
echo "WORKING";
}
} else {
echo "NO ROWS RETURNED";
}
不幸的是,這一個下面應該做同樣的確切的事情,但它沒有返回行。數據庫中的表被設置爲InnoDB和UTF-8,結構相同。 $ _POST ['關鍵字']也發佈正確的數據。使用jquery $ .post()方法發佈。這是腳本中的某些內容導致BELOW SCRIPT不返回行。經過Firefox和Chrome測試。任何人有想法?
$keyword = $_POST['keyword'];
$country = "Thailand";
if($keyword === "English" || $keyword === "อังกฤษ" || $keyword === "ภาษาอังกฤษ" || $keyword === "english"){
if($keyword === "English" || $keyword === "english"){
$sub_alt = "อังกฤษ";
}
if($keyword === "อังกฤษ" || $keyword === "ภาษาอังกฤษ"){
$sub_alt = "English";
}
}
if(isset($sub_alt)){
$sql="SELECT * FROM `postclass` WHERE `subject` LIKE :search OR `subject` LIKE :search2 AND `country` LIKE :country AND `date` >= (DATE_SUB(CURDATE(), INTERVAL 150 DAY)) ORDER BY `id` DESC LIMIT 50";
} else {
$sql="SELECT * FROM `postclass` WHERE `country` LIKE :country AND `subject` LIKE :search AND `date` >= (DATE_SUB(CURDATE(), INTERVAL 150 DAY)) ORDER BY `id` DESC LIMIT 50";
}
$stmt=$dbh->prepare($sql);
$stmt->bindValue(':search','%'.$keyword.'%', PDO::PARAM_STR);
if(isset($sub_alt)){
$stmt->bindValue(':search2','%'.$sub_alt.'%', PDO::PARAM_STR);
}
$stmt->bindValue(':country','%'.$country.'%', PDO::PARAM_STR);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$result = $stmt->fetchAll();
foreach($result as $row) {
echo "WORKING";
}
} else {
echo "NO ROWS RETURNED";
}
我假設它是$ sql語句中的某些內容,但爲什麼第一個查詢可以工作,而不是第二個查詢? –
另外$ sub_alt變量和if語句正常工作... Srsly必須是$ sql var ... –