2014-03-06 36 views
0

我收到此錯誤信息:「Mysql_fetch_array提供的參數不是一個有效的MySQL結果」,但我不知道什麼是錯的代碼Mysql_fetch_array提供的參數不是一個有效的MySQL查詢

$sql = "SELECT *, status_pedido.nome as descricao_status,frete.nome as nome_frete, historico.data as data_hist, DATE_FORMAT(historico.`data`,'%d/%m/%Y') as data, DATE_FORMAT(historico.`data`,'%H:%i:%s ') as hora 
        FROM midiosto_db.`l-pedidos` as pedido 
        INNER JOIN midiosto_db.`l-pedido-historico` as historico 
         ON pedido.id = historico.`id-pedido` 
        INNER JOIN midiosto_db.`l-status` as status_pedido 
         ON status_pedido.id = historico.`id-status` 
        INNER JOIN midiosto_db.`l-frete` as frete 
         On frete.id = pedido.`id-frete` 
        WHERE pedido.id = ".$_GET["id_pedido"]." 
        ORDER BY data_hist DESC"; 

$query_historico = mysql_query($sql); 
$row_historico = mysql_fetch_array($query_historico); 
+2

首先將'mysql_query($ sql);'改爲'mysql_query($ sql)或者死掉(mysql_error());'看看你是否有錯誤。 – naththedeveloper

+2

另請注意,不應再使用'mysql_'函數。使用'mysqli_''或PDO。 – naththedeveloper

+3

**在發佈問題之前詢問「此錯誤消息是什麼意思?」在搜索框中搜索實際的錯誤信息。**你會發現有同樣問題的人的其他問題,然後你可以瞭解他們是如何解決這個問題的。 –

回答

1

要謹慎使用此代碼來執行SQL入侵... get完全不安全。使用PDO代替mysql_query。

而對於您的錯誤消息,query_historico可能不是您期望的類型,因爲您的SQL語句可能是錯誤的。

+1

使用PDO是不夠的。用戶必須使用準備好的語句。如果用戶使用不受信任的數據創建SQL語句,則PDO對SQL注入開放。 –

+0

我當然同意@Andy Lester – Hooli

相關問題