1

出色地....

我有一个函数,我需要从我的数据库中检索数据(其中包含谷歌地图标记的信息)并用该数据构建一个 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。

ps 我有超过这个例子中使用的 2 个表......

4

1 回答 1

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);  
}
于 2013-06-15T18:50:19.053 回答