как проверить, является ли значение столбца нулевым, и только затем выполнить запрос? например:
col1 col2 col3
01 abc
Запустите запрос, который сначала проверяет, существует ли запись или нет; если он существует, он должен выполнить запрос на обновление, а если он не существует, он выполняет запрос вставки. как проверить, имеет ли col3 значение null, и если он равен null, он должен выполнить запрос на обновление..
$sql = "SELECT uid FROM `users` WHERE uid = '" . $user_id . "'";
$result = mysql_query($sql,$conn) or die('Error:' .mysql_error());
$totalrows = mysql_num_rows($result);
if($totalrows < 1)
{
insertUser($user_id,$sk, $conn);
}
else
{
updateSessionKey($user_id,$sk,$conn);
}
$sql = "SELECT * FROM `users` WHERE uid = '" . $user_id . "'";
$result = mysql_query($sql,$conn) or die('Error:' .mysql_error());
$totalrows = mysql_num_rows($result);
if($totalrows < 1)
{
$res = mysql_fetch_array($sql);
if(!empty($res['col3'])) {
insertUser($user_id,$sk, $conn);
}
}
else
{
updateSessionKey($user_id,$sk,$conn);
}
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Не проверять значение столбца, но я не думаю, что вам это действительно нужно.
У вас должен быть uid
как столбец UNIQUE
. Вы пытаетесь вставить строку для нового пользователя с данным uid
; если он находит пользователя с тем же uid
, то вы делаете обновление вместо этого.
UPDATE:
Я думаю, вы не удосужились прочитать ссылку.
Я не тестировал его, но это должно быть примерно так:
INSERT INTO users (uid, name, session)
VALUES ('login', 'Real Name', 'SeSsIoN_iD')
ON DUPLICATE KEY UPDATE session='SeSsIoN_iD'
Это добавит пользователя, если он не существует, и если он это сделает, он установит новый ключ сеанса. ИЛИ, если вы хотите сохранить старый ключ сеанса, если он уже имеет один,
INSERT INTO users (uid, name, session)
VALUES ('login', 'Real Name', 'SeSsIoN_iD')
ON DUPLICATE KEY UPDATE session=IFNULL(session, 'SeSsIoN_iD')
Один запрос, а не три. Вы еще этого не делали.
Это то, что вы имеете в виду?
Это может быть достигнуто как это (untested):
$sql = "SELECT uid, col3 FROM `users` WHERE uid = '" . $user_id . "'";
$result = mysql_query($sql,$conn) or die('Error:' .mysql_error());
$totalrows = mysql_num_rows($result);
if($totalrows < 1)
{
insertUser($user_id,$sk, $conn);
}
else
{
$col3value = mysql_result($result, 0, 'col3');
if (is_null($col3value))
{
updateSessionKey($user_id,$sk,$conn);
}
}