簡體   English   中英

PHP MySQLi沒有結果

[英]Php mysqli gives no results

基本上我的問題是在某些情況下php中的mysql返回一個空數組且沒有錯誤。

我從表“ newproducts”中獲取所有產品,該表的名稱與所調用的url中的名稱相同。

所以當我打電話時: 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-我對URL進行查詢解碼后的1-butenyl%5Dhexahydro-5-hydroxy-2H-cyclopenta%5Bb%5Dfuran-2-one是這樣的(在瀏覽器中使用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;
}

我還必須使用html_entity_decode。 結果似乎相同,但即使使用var_dump也沒有,因為某些字符由Web瀏覽器自動轉換。 html_entity_decode解決了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM