Задать вопрос
@OdAs
Начинающий пайтон програмист

Не отправляется MYSQL ЗАПРОС?

Суть запроса: если в столбце Id есть значение с $datatopush[0], то меняем текущее значение столбца Streetid на $datatopush[1]. Если нету - записываем айди и соответствующее значение.

if($_GET['pushuidstreetid']){
        $res= $_GET['pushuidstreetid'];
        $datatopush = explode(":", $res);
        echo $datatopush[1];
        $qpush = "IF ($datatopush[0] IN SELECT UserStreetid(Id)) THEN 
        INSERT INTO UserStreetid(Streetid) VALUES ($datatopush[1]); ELSE   
        INSERT INTO UserStreetid (Id, Streetid) VALUES ($datatopush[0], $datatopush[1]); END IF;";
        $result = $connection->query($qpush);
        echo"Error:".$qpush."<br>".mysqli_error($connection);
    };

Выдает ошибку:

pushError:IF SELECT Id FROM UserStreetid WHERE Id=5556 THEN INSERT INTO UserStreetid(Streetid) VALUES (push); ELSE INSERT INTO UserStreetid (Id, Streetid) VALUES (5556, push); END IF
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 'IF SELECT Id FROM UserStreetid WHERE Id=5556 THEN INSERT INTO UserStree' at line 1
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@galaxy
Смотреть страшно, что там в запросе понаписано... В общем, вот:
$stmt = $connection->prepare("INSERT INTO UserStreetid(Id, Streetid) VALUES (?, ?) ON DUPLICATE KEY UPDATE Streetid = ?");
$stmt->bind_param("iii", $datatopush[0], $datatopush[1], $datatopush[1]);
if (!$stmt->execute())
  echo"Error:".$qpush."<br>".mysqli_error($connection);


(нужен PRIMARY/UNIQUE ключ на id)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
https://qna.habr.com/q/918033#answer_1847841
И в целом рекомендую прочитать ответы на этой странице, поскольку со всеми проблемами придется столнуться
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы