我正在使用php5 +和MySQL。爲什麼我的「where條件」與數字不起作用?
我想不通爲什麼我的操作是不工作:
$prepare = $bbd->prepare('SELECT cm.cm_values FROM c_metas as cm WHERE cm.cm_name = "inscription" AND cm.cm_values > :specific_date');
$prepare->execute(array(':specific_date' => $date));
隨着使用fetchall,這給了我在cm_name「申遺」的所有條目。 在另一方面:
$prepare = $bbd->prepare('SELECT cm.cm_values FROM c_metas as cm WHERE cm.cm_name = "inscription" AND cm.cm_values > '.$date.' ');
$prepare->execute();
完美返回cm_name並用「cm_values」優於$日期「申遺」項目...
我想不出什麼我做錯了?
THX對您有所幫助,並原諒我的英語...
編輯:我使用時間戳存儲日期,所以$日期是數值。
再次編輯:如評論所述,我的參數格式有問題。喜歡的東西
$prepare = $bbd->prepare('SELECT cm.cm_values FROM c_metas as cm WHERE cm.cm_name = "inscription" AND cm.cm_values > :specific_date');
$prepare->bindParam(':specific_date', $date, PDO::PARAM_INT);
$prepare->execute();
作品...所以我現在必須得到如何使它工作在執行()...
我想在第二個例子中比較'strings'而不是'dates'。 'c_metas'可能是包含'cm_values'列的EAV表格作爲文本。嘗試:'WHERE CAST(cm.cm_name AS DATE)>' – lad2025
我實際上使用時間戳(oldschool,我知道)所以specific_date,$ date是數字。 – Vae