За последние 24 часа нас посетили 36292 программиста и 1690 роботов. Сейчас ищут 1063 программиста ...

Реализация нравится / не нравится

Тема в разделе "PHP для новичков", создана пользователем _ne_scaju_, 4 янв 2021.

  1. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    PDO используют в первую очередь для удобства, чтобы код не покрывать лишним лапшекодом из нативных расширений.
    А вот тему перекручивать "как правильно использовать проверки результата", на универсальность, с булочкой кунжутом и бла-бла-бла - No beautiful

    Поэтому даже написал, что ты следовательно и процитировал
     
  2. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    PHP:
    1. ALTER TABLE `article`.`likes` DROP PRIMARY KEY, ADD PRIMARY KEY (`id_user`, `id_post`) USING BTREE;
    создал первичный ключ.
    по ссылке сделал исключения но у меня идет недопонимания а как же оно работает, в случае ошибки я хочу увидеть ее посмотреть что попало в нее.
    PHP:
    1.   $already_exists = false;
    2.   $stmt = $pdo->prepare("SELECT `id` FROM `posts` WHERE `id` = ?");
    3.   $stmt->execute([(int)$filter['id']]);
    4.   if ($stmt->rowCount() > 0) {
    5.     $already_exists = true;
    6.   }// else{
    7.   try {
    8.     $stmt = $pdo->prepare("INSERT INTO `likes` (`id_user`, `id_post`) VALUES (?,?)");
    9.     $stmt->execute([(int)$uid, (int)$filter['id']]);
    10.   } catch (PDOException $e) {
    11.     if ($e->errorInfo[1] == 1062) {
    12.       $already_exists = true;
    13.     } else {
    14.       throw $e;
    15.     }
    16.   }
    17.   // }
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    657
    Первая $already_exists = true; зачем нужна? Может, хотели присвоить false? И закрывающую фиг. скобку, которая там, перенесите в самый конец.
    --- Добавлено ---
    Как работает что? Исключения? Если в блоке try возникнет исключение (при должной настройке ошибки PDO будут вызывать исключения), управление будет передано в блок catch, в котором вы уточняете ошибку.
    --- Добавлено ---
    А я понял, откуда вы взяли эту команду. Тот ответ не самый удачный. См. на «степень полезности». Там SELECT – аналог того, от которого я советовал отказаться.

    Если у вас отсутствует «лайкаемый» пост, вы просто выводите ошибку 404.
     
  4. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    разработал скрипт, будет время покажу что получилось, может вы скажите что не так)
     
  5. cor_code

    cor_code Новичок

    С нами с:
    23 фев 2023
    Сообщения:
    1
    Симпатии:
    0
    так где в итоге исходники?
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    губу закатай нахлебник.