如何在使用PDO的Mysql查询中使用变量

时间:2015-11-11 10:16:56

标签: php mysql pdo

我想安全地在我的mysql查询中使用我的变量。我正在使用pdo。但我不能将pdo占位符用于表名。

这有效;

$stmt = $db->prepare("SELECT * FROM table WHERE id=?");
$stmt->execute(array($id));

但这没有;

$stmt = $db->prepare("SELECT * FROM ? WHERE id=?");
$stmt->execute(array($table, $id));

我做错了什么?

2 个答案:

答案 0 :(得分:2)

只做

$statement = $db->prepare("SELECT * FROM table WHERE id=(:some_id)");
$statement->execute(array(':some_id' => $row['id']));

您不能使用占位符表

这应该不是问题,因为表名应该是你控制的。

答案 1 :(得分:0)

这是给你的简单答案。

<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.4.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.1.1</version> </dependency>

<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency>

你应该提供key =&gt;价值形式。