渴求
我有一个功能,我需要从我的数据库中检索数据(其中包含谷歌地图标记的信息)并使用该数据构建一个JSON字符串。因为我需要一个多维json字符串,我认为这将是最好的我的选择。
public function getAll(){
$tables = ['huisartsenwachtposten', 'bioscopen'];
$markers = [];
for($i=0; $i<count($tables); $i++){
$sql = "SELECT * FROM `:table`";
$stmt = $this->db->prepare($sql);
if ($stmt) {
$stmt->bindParam(':table', str_replace("'", "", $tables[$i]));
if ($stmt->execute()) {
while($row = $stmt->fetch() ) {
$markers[$tables[$i]][] = $row;
}
}
}
}
return json_encode($markers);
}
但是,当我运行此功能时。我的浏览器显示以下错误:“SQLSTATE [42S02]:未找到基表或视图:1146表'gepensioneerdgent.'huisartsenwachtposten''不存在”
任何有解决方案的人? :) 提前致谢
HS。
P.S。我有超过这个例子中使用的2个表...
答案 0 :(得分:1)
如果您使用的是PDO,请查看:http://php.net/manual/en/pdostatement.bindparam.php
bindParam()仅适用于列,不适用于表。你要记下表名。
试试这个(未经测试!):
public function getAll(){
$tables = array('huisartsenwachtposten', 'bioscopen');
$markers = array();
for($i=0; $i<count($tables); $i++){
$sql = "SELECT * FROM `".$tables[$i]."`";
$stmt = $this->db->prepare($sql);
if ($stmt) {
if ($stmt->execute()) {
while($row = $stmt->fetch() ) {
$markers[$tables[$i]][] = $row;
}
}
}
}
return json_encode($markers);
}