#php #mysql
#php #mysql
Вопрос:
Я хотел бы сделать INSERT INTO
доступ к двум разным таблицам MySQL. Например,
- вставьте данные клиента в tblcustomer
- введите адрес клиента в tbladdress
Могу ли я сделать это в
$result = mysql_query(
"INSERT INTO tblcustomer(
txtaccount_name,txtfirst_name,txtlast_name,txtemail
,intoffice_no,intfax,intmobile,intother_no,dtebirth_date)
VALUES('$acc_name','$fname','$lname','$email',
'$office','$fax_no','$mobile_no','$others_no','$date')");
$result1 = mysql_query(
"INSERT INTO tbladdress(
txtmailing_add,txtothers_add,txtmailing_street,txtothers_street,
txtmailing_city,txtothers_city,txtmailing_state,txtothers_state,
txtmailing_postcode,txtothers_postcode,txtmailing_country,
txtothers_country)
VALUES('$m_add','$o_add','$m_street','$o_street',
'$m_city','$o_city','$m_state','$o_state',
'$m_postcode','$o_postcode','$m_country',
'$o_country')");
Комментарии:
1. Никогда не добавляйте значения php $ непосредственно в инструкции MySQL, всегда используйте mysql_real_escape_string, иначе вы подвергнетесь атакам SQL-инъекций, смотрите Ответы ниже.
Ответ №1:
Да, это сработало бы, но вам пришлось бы выполнить два запроса к базе данных, я предлагаю использовать PDO. Он поддерживает транзакции.
Комментарии:
1. Проверьте здесь php.net/manual/en/book.pdo.php и следуйте инструкциям, от начала до конца, внимательно прочитайте, и вы будете в пути в кратчайшие сроки, обязательно используйте подготовленные инструкции, поскольку это гарантирует от атак SQL, если вы хорошо изучите PDO, это принесет большую пользу вашему сайту практически во всем.
Ответ №2:
Вы можете вставить с помощью этих запросов, но вам следует установить соединение между таблицей клиентов и таблицей адресов клиентов, если вы еще этого не сделали.
Они должны быть соединены внешним ключом или чем-то подобным, если движок не innodb.
Вы должны избегать пользовательского ввода, используя mysql_real_escape_string
или лучше использовать PDO.