首页 > 解决方案 > 如何选择名称中带有 - 连字符的表名

问题描述

我无法弄清楚这一点,也没有任何搜索产生结果。

查询:

$QUERY = "SELECT rp.perm_id 
          FROM ac_br_user-roles AS ur 
          JOIN ac_br_roles-permissions AS rp ON rp.role_id = ur.role_id 
          WHERE ur.user_id = ?";

我尝试使用``反引号''单引号和{}花括号将表名和\反斜杠括在 - 处,以将连字符全部转义但-无济于事。

错误:

PDOException:SQLSTATE [42601]:语法错误:7 错误:“-”处或附近的语法错误第 2 行:FROM ac_br_user-roles AS ur ^ in

或“在或附近”我尝试在 LINE 2 上使用的任何转义字符

更新

$QUERY = 'SELECT rp.perm_id 
          FROM `ac_br_user-roles` AS ur 
          JOIN `ac_br_roles-permissions` AS rp ON rp.role_id = ur.role_id 
          WHERE ur.user_id = ?';

PDOException:SQLSTATE [42601]:语法错误:7 错误:在“ " LINE 2: FROMac_br_user-roles`AS ur ^ in或附近出现语法错误

反引号没有帮助,$QUERY 字符串上的单引号和双引号的结果相同。

标签: phppostgresqlpdo

解决方案


推荐阅读