вставить в таблицу без детализации всех столбцов mysql - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу вставить таблицу MySQL в php. Моя таблица участников содержит столбцы: id, name, email, birthday, mobile, sex, money, date_reg. У меня есть переменные:

$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$sex = $_REQUEST['sex'];
$time = time();

Я обычно использую запрос:

mysqli($conn, "INSERT INTO members (name, email, sex, date_reg) VALUES ('$name', '$email', '$sex', '$time');

Но когда я поднимаю vps, мне нужно использовать запрос:

mysqli($conn, "INSERT INTO members (name, email, birthday, mobile, money, sex, date_reg) VALUES ('$name', '$email', '','','' , '$time');

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

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Это не проблема PHP. Вы должны установить значение по умолчанию для столбца mysql, чтобы иметь возможность игнорировать его во время INSERT.

Это прекрасно описано в mysql документах :

Предложение DEFAULT value в спецификации типа данных явно указывает значение по умолчанию для столбца. Примеры:

CREATE TABLE t1 ( i INT DEFAULT -1, c VARCHAR(10) DEFAULT '', price DOUBLE(16,2) DEFAULT '0.00' );

0 голосов
/ 06 ноября 2018

Такая проблема вроде субъективна.

Попробуйте это

INSERT INTO table SET a=1, b=2, c=3

, поскольку его легче модифицировать и легче отлавливать ошибки в выражении, особенно при вставке большого количества столбцов. Если вам нужно вставить 10 или 15 или более столбцов, по моему мнению, действительно легко что-то смешать, используя синтаксис (x, y) VALUES (1,2).

Если переносимость между различными стандартами SQL является проблемой, тогда, возможно, INSERT INTO table (x, y) VALUES (1,2) предпочтительнее.

И если вы хотите вставить несколько записей в одном запросе, не похоже, что синтаксис INSERT INTO ... SET будет работать, тогда как другой будет работать. Но в большинстве практических случаев вы циклически просматриваете набор записей для вставки в любом случае, хотя могут быть случаи, когда, возможно, создается один большой запрос для вставки набора строк в таблицу в одном запросе по сравнению с запросом для каждый ряд.

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