2015-10-21 98 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