2015-10-21 111 views
0

原諒我,因爲這可能是一個101問題,但我沒有運氣包裝我的頭。動態MySQLi語句

我有mysqli-工作>準備語句和

"Select * FROM someTable WHERE someTable.column = 1" - 精美的作品

我們可以把它通過動態傳遞變量與使用的?和一個綁定參數。 "Select * FROM someTable WHERE someTable.column = ?" - 精美的作品

我的願望是建立一個讓我過去的聲明「someTable.column = 1」動態

"Select * FROM someTable WHERE ?" 

我想通的方法是一個總的胸圍,但試圖通過傳遞測試它變量「1 = 1」,它的工作?!

所以,如果我可以通過「1 = 1」,那麼,爲什麼不能我通過「someTable.column = 1」

我已經與MySQL在過去通過建立聲明並插入它做到了這一點所有在同一時間。我只是希望有另一種方式。

+0

使用2個變量一個用於列,一個用於值,並且像您所描述的一樣傳遞它。這就是我從這個頭頂開始的最簡單的方式,就像這個''Select * FROM someTable WHERE $ column = $ value'' –

+0

另一個願望是將條件疊加在一起並傳遞給它們的能力。我假設我需要在mysqli prepare聲明之外完成100%聲明,但希望有一種方法可以通過一個綁定變量傳遞一些條件 – TileGuy

回答

0

原諒我,因爲我的聲望不足以發表評論,但爲什麼不只是在你的情況下使用字符串concat?

$query="Select * FROM someTable WHERE 1=1 ";然後

if($additionalInfo==true){ $query.= "AND someTable.column=1 "; } 

請告訴我,如果我誤解你的問題,我要除去這可能誤導性崗位。

+0

這是一種上帝的方法,謝謝。可能最終會使用它。 – TileGuy