Постановка SQL-запросов - PullRequest
       3

Постановка SQL-запросов

0 голосов
/ 23 февраля 2012

Коротко и мило:

У меня есть таблица с именами лиц, в которой хранятся экземпляры личной информации, используемой для различных целей.например, когда пользователь вводит данные нового места, он также вводит данные контактного лица.детали места хранятся в одной таблице, личные данные - в таблице персон, а идентификатор персон добавляется в таблицы мест для ссылки на две.

мои вопросы таковы: это плохая практика?в основном я вижу, что (согласно приведенному ниже примеру кода), я выполняю запрос вставки в таблицу лиц, нахожу максимальный идентификатор (делая предположение, что это идентификатор с информацией, которую только что добавил пользователь), а затем выполняювставить запрос в таблицу мест с включенным поисковым максимальным идентификатором

Я вижу, что это может быть потенциально опасно, если у вас есть несколько человек, вставляющих места, тогда потенциально вы можете возвращать и связывать неправильный идентификатор из таблицы персон.

Каков наилучший способ сделать это, сохраняя при этом личные данные в отдельной таблице.

$query = "insert into persons (perFirstName, perLastName, perAddr_Line1, perAddr_Suburb, perAddr_Postcode, perPhone_Landline, perPhone_Mobile, perEmail) VALUES ('$firstname','$lastname','$address_line1','$address_suburb','$address_postcode','$phone_landline','$phone_mobile','$emailaddress')";
mysql_query($query) or die();

if (!mysql_error()){
    print "yes";
    $perID = mysql_result(mysql_query("select max(callid) from persons"),0,0);
    $query = "insert into volunteers (perID, volRoleID, volPoliceCheckCompleted) VALUES ('$perID','$role','$policecheck')";
}else{
    print "no";
}

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Полагаю, вы ищете LAST_INSERT_ID (), который должен вернуть вам последний вставленный идентификатор в таблицу персон. Смотри документацию здесь .

0 голосов
/ 23 февраля 2012

См .:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...