基本上我的問題是,在某些情況下,php中的mysql會返回一個沒有錯誤的空數組。Php mysqli沒有給出任何結果
我從表'newproducts'獲取所有產品,其名稱與被調用的網址相同。
所以,當我打電話: http://domain.com:9090/db/product/3-Acetyl-5-bromopyridine
正被調用的查詢(url_decode後):
SELECT * FROM `newproducts` WHERE `name` = '3-Acetyl-5-bromopyridine' LIMIT 1
其正確返回的所有產品。
但如果我叫: http://domain.com:9090/db/product/%5B3aa,4a%28E%29,5b,6aa%5D-4-%5B4-%283-Chlorophenoxy%29-3-oxo-1-butenyl%5Dhexahydro-5-hydroxy-2H-cyclopenta%5Bb%5Dfuran-2-one 後,我做urldecode查詢是這樣(在瀏覽器中使用的var_dump):
SELECT * FROM `newproducts` WHERE `name` = '[3aa,4a(E),5b,6aa]-4-[4-(3-Chlorophenoxy)-3-oxo-1-butenyl]hexahydro-5-hydroxy-2H-cyclopenta[b]furan-2-one' LIMIT 1
返回任何結果(空數組),沒有錯誤。
另外,上面在phpmyadmin中的確切查詢正確地返回結果。
最後,我使用下面的行之前試過我沒有運氣運行查詢:提前
mysqli_set_charset($con, "utf8");
mysqli_real_escape_string($con, $name);
謝謝!
查詢的代碼:
function getOneResFromDB($con, $text) {
mysqli_set_charset($con, "utf8");
mysqli_real_escape_string($con, $text);
$query = "SELECT * FROM `newproducts` WHERE `name` = '" . $text . "' LIMIT 1";
$result = mysqli_query($con, $query) or die(mysqli_error($con));
$array = array();
while ($row = mysqli_fetch_assoc($result)) {
$array[] = $row;
}
return $array;
}
echo $查詢上述請求 – 2014-08-30 12:50:17
我已經使用var_dump和echo兩個查詢,我已經顯示了上面的輸出。 Echo和var_dump顯示相同的結果。 – 2014-08-30 12:53:11