그래서 mysql은 곱하기 테이블에 삽입을 지원하지 않습니다. 실제로 두 개 이상의 INSERT INTO 쿼리를 수행해야합니다. 하지만 내 문제는 두 테이블을 업데이 트하지만 하나가 존재하지 않는 경우 삽입합니다. 하나의 쿼리만으로도 가능합니까?존재하지 않는 경우 삽입 동일한 쿼리의 두 테이블에 대한 업데이트
나는 이것을 가지고있다.
UPDATE user, userdetails SET
userdetails.firstname = ?,
user.username = ?,
user.email = ?,
userdetails.location = ?
WHERE user.id = ?
AND userdetails.user_id = ?
$values = array($firstname,$username,$email,$location,$_SESSION['id'],$_SESSION['id']);
그러나 마지막 행
AND userdetails.user_id='{$_SESSION['id']}'
로는 항상 뭔가 불길한도 있었다 DUPLICATE KEY UPDATE
를 읽을 수 있지만 그들은 하나 개의 테이블보다 더 때문에 문제가 해결되지해야합니까?
사용자가 등록 할 때 기본적으로 user_id를 userdetails.user_id에 삽입하는 쿼리를 쉽게 만들 수 있지만 쿼리를 사용하는 것이 훨씬 더 좋을 것입니다.
자리 표시자를 사용할 수 있으면 ** 모든 ** 및 ** 모든 ** 사용자 데이터에 사용할 수 있습니다. 여기에는'$ _SESSION'의 내용도 포함됩니다. 가능한 SQL 주입 버그에 노출되어있는 이유가 무엇보다 신비 스럽습니다. – tadman
@ tadman 오른쪽. 그것을 업데이트했습니다. – Dymond
작업은 [MERGE] (http://en.wikipedia.org/wiki/Merge_ (SQL)) 문입니다. 아쉽게도 AFAIK는 MySQL에서 지원하지 않습니다. –