Запись в несколько таблиц в PHP - PullRequest
2 голосов
/ 27 октября 2008
$sql = "INSERT INTO images (path, useremail, approved, flagged,caption,date) VALUES ('$target','$email',0,0, '$caption','$b')";
$sql1 = "INSERT INTO users (name, email, phone) VALUES ('$peoplename','$email','$phone')"
$conn->execute($sql, $sql1);

Выше приведен код, который я использую, чтобы попытаться записать в 2 таблицы. Раньше Ι вводил соединение через COM-объект Ι мог сделать это не проблема, но сейчас Ι не может это сделать по какой-то причине. Любая помощь будет оценена.

Ответы [ 4 ]

5 голосов
/ 27 октября 2008

Я думал, что второй параметр предназначен для передачи параметров, которые будут привязаны к запросу.

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

$sql = "INSERT INTO images (path, useremail, approved, flagged,caption,date) VALUES ('$target','$email',0,0, '$caption','$b');";
$sql1 = "INSERT INTO users (name, email, phone) VALUES ('$peoplename','$email','$phone');";
$conn->execute($sql . $sql1); 

иначе очевидное

   $conn->execute($sql); 
   $conn->execute($sql1); 
0 голосов
/ 27 октября 2008

Дрю, я не гуру PHP, но одна вещь, которую я вижу в других ответах, - это целостность транзакций. Даже сложение двух INSERT в одну строку, разделенных точкой с запятой, гарантирует атомарность действия (если это важно для вас: -)

Надеюсь, это поможет

0 голосов
/ 27 октября 2008

Почему бы не указать это как один оператор SQL?

$sql = "INSERT INTO images (path, useremail, approved, flagged,caption,date) VALUES ('$target','$email',0,0, '$caption','$b'); INSERT INTO users (name, email, phone) VALUES ('$peoplename','$email','$phone')";
$conn->execute($sql);
0 голосов
/ 27 октября 2008

Во второй строке у вас пропущена точка с запятой.

...