如何在pdo预处理语句中用空格写列名

时间:2014-04-22 21:31:10

标签: php mysql sql pdo

我没有创建这些列名,因为它们是通过上传CSV文件创建的 作为' COL 1' ' COL 2'

   connect();
   global $db;
   $sql = $db->prepare("UPDATE table1 SET 'COL 1'=:c1 where table1_id=:id");
    $sql->bindParam(':id',$arry['id'],PDO::PARAM_STR, 12);

    $sql->bindParam(':c1',$arry['t1'],PDO::PARAM_STR, 12);
    try
    {
    $sql->execute();
    }
    catch(PDOException $e)
    {
    echo($e);
    }

显示的错误是

  

例外' PDOException' with message' SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以便在#1;&= 39; DDEE'附近使用正确的语法。 table1_id =' 5''在第1行'在C:\ wamp \ www \ excelsheets \ functions.php:109堆栈跟踪:#0 C:\ wamp \ www \ excelsheets \ functions.php(109):PDOStatement-> execute()#1 C:\ wamp \ www \ excelsheets \ save4.php(4):save4_update(数组)#2 {main}

我知道我们无法使用''准备好的声明中的单引号 那我怎么能代表一个中间有空格的列?

1 个答案:

答案 0 :(得分:2)

MySQL中的转义字符是后引号(或后退标记)。以下是它的外观示例:

UPDATE table1 
    SET `COL 1` = :c1
     where table1_id = :id