我正在尝试从我的数据库表'成员'中检索一个结果。使用准备好的电话。
$favid = 1;
$type = "favdeal";
$action = 1;
$user_id = 1;
$stmt = $mysqli->prepare("SELECT ? FROM members WHERE id=?");
$stmt->bind_param('ss', $type, $user_id);
$stmt->execute();
$stmt->bind_result($favs);
while ($stmt->fetch()) {
print($favs);
}
$stmt->close();
这是我设法得到任何结果的唯一方法。
该表格中有一个名为' favdeal'它的值为' 2'在里面。 打印结果返回列的名称而不是值。
所以我的问题是如何获得价值' 2'而不是列的名称?
答案 0 :(得分:1)
您不能像SELECT
那样绑定列{(em>或表)与SELECT ?
的绑定。
或者,如果您想动态地执行此操作,则需要使用变量。
示例:SELECT $type
< =允许。
但是,使用WHERE
子句时,列名可以绑定。
示例:SELECT column FROM table WHERE column=?
你目前使用的是=> WHERE id=?
参考bind_param()
<强>脚注:强>
如果你碰巧使用MySQL保留字(它可能发生),你需要用反引号包装你的列变量。
例如:(如果使用$type="from";
)&#34;来自&#34;是一个保守的词。
SELECT `$type` FROM members WHERE id=?
有关MySQL保留字的列表,请访问以下页面: