UPDATE `comment`
SET `agree`=`agree`+1,(INSERT INTO `reacted_on` VALUES (10,197))
WHERE `id`=197 and 0 = (SELECT COUNT(*) FROM `reacted_on` WHERE `id_user`=10 and `id_comment`=197)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
'(INSERT INTO `reacted_on` VALUES (10,197)) WHERE `id`=197 and 0 = (SELECT COUNT(' at line 1
Я хочу добавить agree
в comment
, но я хочу, чтобы один и тот же пользователь не мог согласиться на комментарий более одного.Поэтому сначала я проверяю, отреагировал ли пользователь на тот же комментарий;Я согласен.Затем я вставляю строку, чтобы пользователь больше не реагировал на тот же комментарий.
Что мне не хватает?почему это не правда?Что я должен сделать, чтобы решить проблему?
Как использовать оператор INSERT в запросе UPDATE?
Здесь я использую запрос:
$con = mysql_connect($my_sql_servername,$my_sql_username,$my_sql_password);
mysql_select_db($my_sql_database, $con);
if($validation != $_SESSION['validation'])
die('-1');
$sql = "IF NOT EXISTS (SELECT * FROM `reacted_on` WHERE `id_user`=".$id_user." and `id_comment`=".$id_comment." ) THEN INSERT INTO `reacted_on` VALUES (10,197); UPDATE `comment` SET `agree`=`agree`+1 WHERE `id`=".$id_comment." END IF;";
//echo $sql;
if(!mysql_query($sql)){die(mysql_error());}