Привет, я новичок в php и mysql.
Мне интересно, как я могу использовать PHP, чтобы проверить, содержит ли таблица в моей базе данных mysql ROW, которые имеют конкретный идентификатор, и если не добавить данные в таблицу.
Например,
Структура таблицы: (имя таблицы: запись) ID, DATA
У меня ID = 123 и DATA = hello, хранящиеся в переменной в php-коде, как я могу использовать запрос php sql, чтобы узнать, существуют ли данные, проверяя использование его идентификатора в таблице, если нет, INSERT ID и DATA в стол.
Надеюсь, вы понимаете.
p / si подключили скрипт php к базе данных
Сделайте ID UNIQUE
:
CREATE TABLE my_table( ID INT UNSIGNED UNIQUE...
затем используйте INSERT IGNORE
:
INSERT IGNORE INTO my_table( ID, DATA ) VALUES( some_id, some_data )
IF NOT EXISTS(SELECT 1 FROM structure WHERE ID = <yourid>) INSERT INTO structure (ID, DATA) VALUES(<yourid>, <yourdata>)
Просто замените INSERT на REPLACE.
Другой вариант:
INSERT INTO record(id, `data`) SELECT 123, 'hello' FROM new_table WHERE NOT EXISTS (SELECT id from record where id = 123 );
Если ваш идентификатор является уникальным ключом, вы можете прямо попытаться вставить строку. Если этот идентификатор уже находится в таблице, база данных не позволит вам вставить его и вернет ошибку. Кроме того, вам нужно сначала запустить инструкцию SELECT, чтобы увидеть, существует ли этот идентификатор в вашей таблице, и если он не вставлен.
Также этот поток поможет вам многого, я думаю, как «вставить, если не существует» в MySQL?