쿼리는 특정 언어로 일부 항목의 이름과 설명을 선택해야한다는 생각입니다. 문자열은 id에 대한 열과 각 언어에 대한 열 (fx : 'us'및 'fr')이있는 string
테이블 단순 형식으로 저장됩니다.준비된 문을 통해 열 이름 지정
사용자는 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
데이터베이스를 쿼리하기 전에 유효한지 여부를 코드에서 검사를 피하고 싶어. 이렇게하면 데이터베이스에 새로운 언어 열이 추가 될 때마다 코드를 업데이트하지 않아도됩니다.
준비된 문을 통해 열 이름을 지정할 수 있습니까?