【发布时间】:2014-05-16 04:56:50
【问题描述】:
这个想法是查询应该以某种指定的语言选择某些项目的名称和描述。字符串存储在string 简单表中,该表有一个 id 列和一个用于每种语言的列(fx:'us' 和 'fr')。
用户可以通过 API 指定他们想要的语言,这意味着必须使用 PHP 的预处理语句进行查询。
以下代码显示了我希望它如何工作。问题是name.? 和description.? 在绑定参数时不会评估为有效列。
$query = $mysqli->prepare(
'SELECT name.?, description.?
FROM item
JOIN string AS name ON item.nameId = name.id
JOIN string AS description ON item.descriptionId = description.id
WHERE item.id = ?');
$query->bind_param('ssi', $lang, $lang, $id);
我想避免在查询数据库之前检查语言$lang 是否有效。这是为了避免每次在数据库中添加新的语言列时都必须更新代码。
是否可以通过prepared statement指定列名?
【问题讨论】:
标签: php mysqli prepared-statement