Вставить в проблему mysql

У меня есть таблица с 2 полями (name, confirm). confirm имеет тип tinyint, потому что я хочу указать 0 или 1

Теперь я хочу поместить 1 в confirm; это утверждение правильно?

if ($row['confirm']==0)
{
    $query = "INSERT INTO opt (confirmed) values('0')";
    echo 'The user selected options has confirmed';
}

Я немного запутался. Это почти звучит так, как будто у вас уже есть имя в таблице, и вы просто хотите ОБНОВИТЬ подтвержденное поле для конкретного имени. Нет?

Ty. 20.01.2009 15:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
173
4

Ответы 4

Если «подтверждено» является числовым столбцом, не следует заключать 1 в кавычки.

INSERT INTO OPT (confirmed) VALUES (1)

MySQL с радостью принимает числовые значения в кавычках.

Alnitak 20.01.2009 15:27

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

Frederik Gheysels 20.01.2009 18:17

Написанный вами оператор является правильным только в том случае, если вы также хотите, чтобы связанное поле 'name' было NULL.

Если вы действительно хотите, чтобы оба поля были заполнены, вам следует сделать:

INSERT INTO opt (name, confirmed) VALUES (?, ?)

а затем используйте семейство функций mysqli или PDO для привязки параметров ? к значениям, заданным пользователем. Это необходимо для защиты вашей базы данных от атак с использованием SQL-инъекций.

Я бы также подумал о добавлении еще пары полей:

  • Уникальное поле id (для этого подходит MySQL auto_increment), чтобы вы могли удалять и / или изменять определенные записи.
  • Поле timestamp, чтобы у вас была запись (не каламбур) о том, когда эти данные были добавлены.

Все предыдущие плакаты говорили +: Если у вас есть только два возможных значения для поля «подтверждено», сделайте его ENUM.

Похоже, вы действительно хотите обновить:

UPDATE opt SET подтвержден = 1 WHERE name = '$ row [name]'

Верно?

Другие вопросы по теме