2012-08-13 3 views
1

드루팔 데이터베이스 계층 API는 INSERT, UPDATE이 기능을 사용하거나 쿼리를 삭제하지 마십시오 db_query왜 db_query가 아닌가요? (드루팔 DB 층)

에 대해 말한다. db_insert(), db_update() 및 db_delete()를 통해 처리해야합니다. (source)

나는이뿐만 아니라 다른 데이터베이스 레이어라고 생각합니다. 왜 아무도 알지 못해? 안전하지 않거나 비효율적입니까?

답변

1

내가 아는 한 정당한 대회입니다. 확실히 INSERT/UPDATE에서 db_query()까지 실행하는 데 기술적 인 문제는 없습니다. 모든 작업은 데이터베이스에 대해 바닐라 SQL 쿼리를 실행하므로 확실히 작동합니다.

설명서에는 해당 조작에 대한 전용 기능이 있다는 것을 지적하고 SQL INSERT 등을 직접 실행하는 것이 좋을 것이라고 생각합니다.

'구조적'쿼리 (즉 db_select(), db_insert(), db_update()db_merge()를 사용하는) 또한 필요에 따라 변경할 수있는 시스템의 다른 부분을 의미, 그들은이 실행되기 전에 hook_query_alter()를 통해 실행되는 추가 혜택을 얻을 것이다. db_query()을 사용할 때 동일한 기능을 사용할 수 없습니다.