2014-03-03 38 views
0

我有一個現有的查詢,它使用sprintf將php和mysql合併到自定義MySQL查詢中。在PHP中使用sprintf的MySQL查詢

這個偉大的工程:

$query_EmpVSP = sprintf("SELECT * FROM HTG_VSP WHERE HomeOfEmpNumber IS NULL OR HomeOfEmpNumber = '' OR HomeOfEmpNumber = %s", GetSQLValueString($colname_EmpVSP, "text")); 

我需要添加第二或語句稱爲CustomForEmpNumber另一列,並想重新使用$ colname_EmpVSP值。

當我添加

. "OR HomeOfEmpNumber = %s", GetSQLValueString($colname_EmpVSP, "text"));

我在%s的

這裏得到一個無效的語法是當前查詢,顯示錯誤:

$query_EmpVSP = sprintf("SELECT * FROM HTG_VSP WHERE HomeOfEmpNumber IS NULL OR HomeOfEmpNumber = '' OR HomeOfEmpNumber = %s", GetSQLValueString($colname_EmpVSP, "text") . " OR CustomForEmpNumber = %s", GetSQLValueString($colname_EmpVSP, "text")); 
+0

你使用的是什麼mysql驅動程序?如果你使用'PDO',你可以參數化你的參數,而不用整個'sprintf()'東西。 –

+0

我必須使用sprintf(),它的一個現有的應用程序,其他的一切都是這樣編碼的。 @austin –

+0

所以你想要'SELECT * FROM HTG_VSP WHERE HomeOfEmpNumber IS NULL OR HomeOfEmpNumber =''OR HomeOfEmpNumber =%s OR HomeOfEmpNumber =%s'?我問,因爲我根據你發佈的內容瞭解你的最終結果有點麻煩。 –

回答

2

試試這個:

$sql = "SELECT * FROM HTG_VSP WHERE HomeOfEmpNumber IS NULL OR HomeOfEmpNumber = '' OR HomeOfEmpNumber = %s or CustomForEmpNumber = %s"; 
$query_EmpVSP = sprintf($sql,GetSQLValueString($colname_EmpVSP, "text"),GetSQLValueString($colname_EmpVSP, "text")); 
+0

啊!我現在看到,非常感謝@robert! –

+1

我很樂意幫忙,@RoccoTheTaco xD – Hackerman