PHP MySQL вставить несколько данных
Используйте MySQLi и PDO MySQL для вставки нескольких данных
Функция mysqli_multi_query () используется для выполнения нескольких операторов SQL.
Ниже приведены примеры для "MyGuests" таблицу добавлены три новые записи:
Примеры (MySQLi - объектно-ориентированный)
$ Servername = "локальный";
$ Имя пользователя = "Имя пользователя";
$ Password = "пароль";
$ DBNAME = "MyDB";
// Создать ссылку
$ Conn = новый MySQLi ($ ServerName, $ имя пользователя, пароль $, $ имя_бд);
// Проверка ссылки
если ($ conn-> connect_error) {
умереть ( "Не удалось установить соединение:" $ conn-> connect_error.);
}
$ Sql = "INSERT INTO MyGuests (Firstname, Lastname, электронная почта)
VALUES ( 'Джон', 'Doe', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (Firstname, Lastname, электронная почта)
VALUES ( 'Мэри', 'Мо', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (Firstname, Lastname, электронная почта)
VALUES ( 'Джули', 'Дули', '[email protected]') ";
если ($ conn-> multi_query ($ SQL) === TRUE) {
Эхо "Новая запись вставляется успешно";
} Else {
. Эхо "Ошибка:" $ SQL "<br>" $ conn-> ошибка; ..
}
$ Conn-> близко ();
?>
Обратите внимание, что каждый SQL заявление должны быть разделены точкой с запятой. |
Примеры (MySQLi - процессно-ориентированный)
$ Servername = "локальный";
$ Имя пользователя = "Имя пользователя";
$ Password = "пароль";
$ DBNAME = "MyDB";
// Создать ссылку
$ Conn = mysqli_connect ($ ServerName, $ имя пользователя, пароль $, $ имя_бд);
// Проверка ссылки
если (! $ Conn) {
умереть ( "Не удалось установить соединение:" mysqli_connect_error ().);
}
$ Sql = "INSERT INTO MyGuests (Firstname, Lastname, электронная почта)
VALUES ( 'Джон', 'Doe', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (Firstname, Lastname, электронная почта)
VALUES ( 'Мэри', 'Мо', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (Firstname, Lastname, электронная почта)
VALUES ( 'Джули', 'Дули', '[email protected]') ";
если (mysqli_multi_query ($ сопп, $ SQL)) {
Эхо "Новая запись вставляется успешно";
} Else {
. Эхо "Ошибка:" $ SQL "<br>" mysqli_error ($ Conn); ..
}
mysqli_close ($ Conn);
?>
Примеры (PDO)
$ Servername = "локальный";
$ Имя пользователя = "Имя пользователя";
$ Password = "пароль";
$ DBNAME = "myDBPDO";
попробуйте {
$ Conn = новый PDO ( "MySQL: хост = $ имя_сервера; имя_бд = $ имя_бд", $ имя пользователя, пароль $);
// Установить режим ошибки PDO для исключения
$ Conn-> SetAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
// Начать транзакцию
$ Conn-> НачатьТранзакцию ();
// SQL заявление
$ Conn-> Exec ( "INSERT INTO MyGuests (Firstname, Lastname, электронная почта)
VALUES ( 'Джон', 'Doe', '[email protected]') ");
$ Conn-> Exec ( "INSERT INTO MyGuests (Firstname, Lastname, электронная почта)
VALUES ( 'Мэри', 'Мо', '[email protected]') ");
$ Conn-> Exec ( "INSERT INTO MyGuests (Firstname, Lastname, электронная почта)
VALUES ( 'Джули', 'Дули', '[email protected]') ");
// Подтверждать транзакцию
$ Conn-> совершить ();
Эхо "Новая запись вставляется успешно";
}
поймать (PDOException $ е)
{
// Если Откат терпит неудачу
$ Conn-> Откат ();
.. Эхо $ SQL "<br>" $ e-> GetMessage ();
}
$ Conn = NULL;
?>
Используйте подготовленные заявления
MySQLi расширение предоставляет второй способ вставки заявления.
Мы подготовили заявления и связанные параметры.
расширение MySQL может передавать данные без заявления или запроса к базе данных MySQL. Вы можете связать или "связывать" переменные в столбцах.
Примеры (MySQLi с использованием подготовленных операторов)
$ Servername = "локальный";
$ Имя пользователя = "Имя пользователя";
$ Password = "пароль";
$ DBNAME = "MyDB";
// Создать соединение
$ Conn = новый MySQLi ($ ServerName, $ имя пользователя, пароль $, $ имя_бд);
// Проверка соединения
если ($ conn-> connect_error) {
умереть ( "Не удалось установить соединение:" $ conn-> connect_error.);
} Else {
$ Sql = "INSERT INTO MyGuests ЗНАЧЕНИЯ (?? ,,?)";
// Для mysqli_stmt_prepare () объекты инициализации выписки
$ Stmt = mysqli_stmt_init ($ Conn);
// Подготовлен Заявление
если (mysqli_stmt_prepare ($ STMT, $ SQL)) {
// Параметры Bind
mysqli_stmt_bind_param ($ STMT, 'SSS', $ Firstname, $ Lastname, $ электронная почта);
// Установить параметры и выполнить
$ Firstname = 'John';
$ Lastname = 'Doe';
$ E-mail = '[email protected]';
mysqli_stmt_execute ($ STMT);
$ Firstname = 'Мэри';
$ LastName = 'Moe';
$ E-mail = '[email protected]';
mysqli_stmt_execute ($ STMT);
$ FirstName = 'Julie';
$ LastName = 'Дули';
$ E-mail = '[email protected]';
mysqli_stmt_execute ($ STMT);
}
}
?>
Мы можем видеть в приведенном выше примере с использованием модульного, чтобы справиться с проблемой. Мы можем создать блок кода для более легкого чтения и управления.
Примечание связанные параметры. Давайте посмотрим на mysqli_stmt_bind_param () код:
mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);
Связывание аргументы запроса и передать параметры в базу данных. Второй параметр "SSS". В приведенном ниже списке показывает тип параметра. s символ говорит MySQL аргумент является строкой.
Может быть следующие четыре параметра:
- я - целое число,
- d - двойной точности с плавающей точкой
- s - строка
- б - логическое значение
Каждый тип параметра должен быть указан для обеспечения безопасности данных. По типу суждения может уменьшить риск SQL Injection уязвимости.