2015-04-20 50 views
-1

我想從一個非常長的URL參數,看起來像這樣查詢數據庫44444444-44444444-33333333-33333333
當我回顯文本到頁面看起來正確,但是當我在查詢字符串中嘗試它總是返回相同的結果。 什麼可能導致此? 下面是php的查詢。在PHP中的長字符串Mysql查詢不工作

} 
    $colname_Recordset1 = "-1"; 
    if (isset($_GET['ZaP_SN'])) { 
    $colname_Recordset1 = $_GET['ZaP_SN']; 

    echo $colname_Recordset1; 
} 
    mysql_select_db($database_MyDB, $MyDB); 
    $query_Recordset1 = sprintf("SELECT * FROM assingments WHERE ZaP_SN = %s", GetSQLValueString($colname_Recordset1, "int")); 
    $Recordset1 = mysql_query($query_Recordset1, $zaprompt) or die(mysql_error()); 
    $row_Recordset1 = mysql_fetch_assoc($Recordset1); 
    $totalRows_Recordset1 = mysql_num_rows($Recordset1); 

回答

2

查詢表達式是:

WHERE ZaP_SN = %s 

當你把值:

WHERE ZaP_SN = 44444444-44444444-33333333-33333333 

這被解釋爲一個數字表達式。你有兩個解決方案。不太可取的方法是添加單引號:

WHERE ZaP_SN = '%s' 

更好的方法是使用查詢中的參數傳遞字符串。

+0

我不確定在查詢中使用參數傳遞字符串是什麼意思? – LearningGuy

+1

您應該更新爲使用mysqli或PDO。 –

+0

我已經發現哪裏出了問題,但我不知道如何解決它。當頁面作爲參數在頁面之間傳遞時,數字發生了變化。他們看起來是一樣的,但如果我自己的地址欄中輸入參數,它可以工作,但是當我從另一個頁面提交時,它不起作用。什麼可以去一個。 – LearningGuy