вставить в 2 таблицы в одной форме

#php #mysql

#php #mysql

Вопрос:

Я хотел бы сделать INSERT INTO доступ к двум разным таблицам MySQL. Например,

  1. вставьте данные клиента в tblcustomer
  2. введите адрес клиента в 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.