這裏不同的結果是SQL查詢相同的SQL查詢提供了SQL服務器和PHP的輸出
SELECT * FROM seedbed
LEFT OUTER JOIN fertilizers AS seedfert ON seedfert.fert_protocol =seedbed.seed_protocol
LEFT OUTER JOIN pesticides AS seedpest ON seedpest.pest_protocol = seedbed.seed_protocol
LEFT OUTER JOIN fertilizers_list AS seedfert_list ON seedfert.fert_id =seedfert_list.id
LEFT OUTER JOIN pesticides_list AS seedpest_list ON seedpest.pest_id = seedpest_list.id
LEFT OUTER JOIN field ON field.field_protocol = seedbed.seed_protocol + "%"
LEFT OUTER JOIN fertilizers AS fieldfert ON fieldfert.fert_protocol = field.field_protocol
LEFT OUTER JOIN pesticides AS fieldpest ON fieldpest.pest_protocol = field.field_protocol
LEFT OUTER JOIN stock ON stock.field_protocol = field.field_protocol
LEFT OUTER JOIN fertilizers_list AS fieldfert_list ON fieldfert.fert_id =fieldfert_list.id
LEFT OUTER JOIN pesticides_list AS fieldpest_list ON fieldpest.pest_id = fieldpest_list.id
WHERE seedbed.seed_protocol LIKE "1/2013/2%"
ORDER BY field_num;
在PHP是完全一樣的,我使用笨,但我不使用這個活動記錄庫,因此是非常一樣。
$sql = "SELECT * FROM seedbed
LEFT OUTER JOIN fertilizers AS seedfert ON seedfert.fert_protocol = seedbed.seed_protocol
LEFT OUTER JOIN pesticides AS seedpest ON seedpest.pest_protocol = seedbed.seed_protocol
LEFT OUTER JOIN fertilizers_list AS seedfert_list ON seedfert.fert_id = seedfert_list.id
LEFT OUTER JOIN pesticides_list AS seedpest_list ON seedpest.pest_id = seedpest_list.id
LEFT OUTER JOIN field ON field.field_protocol = seedbed.seed_protocol + '%'
LEFT OUTER JOIN fertilizers AS fieldfert ON fieldfert.fert_protocol = field.field_protocol
LEFT OUTER JOIN pesticides AS fieldpest ON fieldpest.pest_protocol = field.field_protocol
LEFT OUTER JOIN stock ON stock.field_protocol = field.field_protocol
LEFT OUTER JOIN fertilizers_list AS fieldfert_list ON fieldfert.fert_id =fieldfert_list.id
LEFT OUTER JOIN pesticides_list AS fieldpest_list ON fieldpest.pest_id = fieldpest_list.id
WHERE seedbed.seed_protocol LIKE '".$this->db->escape_like_str($ins_protocol)."%'
ORDER BY field_num";
$query = $this->db->query($sql);
$data = $query->result();
print_r($data);
現在的問題是,在SQL Server中我得到的所有結果我應該得到儘管在PHP我不明白的我的頭兩個加入結果。我不知道爲什麼?
我希望有人知道發生了什麼事。
請告訴我們你是如何在PHP跑的? –
如果你有權訪問mysql,你可以打開查詢日誌記錄來查看是否有區別。 –
變量$ this-> db-> escape_like_str($ ins_protocol)被雙重檢查,而不是一個問題,我也試過這一個單一的值,我得到同樣有問題的結果 – Akis