#php #mysql #sql #pdo
#php #mysql #sql #pdo
Вопрос:
Привет, здесь у меня есть этот код для вставки данных в базу данных mysql в таблицу radnici
:
try {
$STH = $db->prepare("INSERT INTO radnici (ime_prezime, jmbg, grad, ulica, posta, telefon, uloga, email, user_id) VALUES (:1,:2,:3,:4,:5,:6,:7,:8,:9)");
$STH->bindParam(':1', $_POST['ime']);
$STH->bindParam(':2', $_POST['jmbg']);
$STH->bindParam(':3', $_POST['grad']);
$STH->bindParam(':4', $_POST['ulica']);
$STH->bindParam(':5', $_POST['posta']);
$STH->bindParam(':6', $_POST['telefon']);
$STH->bindParam(':7', $_POST['pozicija']);
$STH->bindParam(':8', $_POST['email']);
$STH->bindParam(':9', $user_id);
//HERE I NEED TO INSERT DATA TO TABLE WORKHOURS BUT CONNECTED WITH JUST ADDEDED ID
//SO here I NEED query something like this // INSERT INTO radnici (ID, ID_radnici, ime_prezime, jmbg,... here ID_radnici is =with ID from table radnici of added data
$STH->execute();
} catch (PDOException $e) {
echo $e->getMessage();
}
echo "<p>Data submitted successfully</p>";
Итак, теперь, когда я добавляю это, мне нужно добавить в эту таблицу workhours
данные, но связанные с идентификатором, с только что добавленными данными…
итак, во второй таблице у меня есть: ID, ID_radnici (here I must add ID_radnici same value as ID on table radnici), value, user_id
Я пишу это, но НЕ работаю: ОБНОВИТЬ:
try {
$STH = $db->prepare("INSERT INTO radnici (ime_prezime, jmbg, grad, ulica, posta, telefon, uloga, email, user_id) VALUES (:1,:2,:3,:4,:5,:6,:7,:8,:9)");
$STH->bindParam(':1', $_POST['ime']);
$STH->bindParam(':2', $_POST['jmbg']);
$STH->bindParam(':3', $_POST['grad']);
$STH->bindParam(':4', $_POST['ulica']);
$STH->bindParam(':5', $_POST['posta']);
$STH->bindParam(':6', $_POST['telefon']);
$STH->bindParam(':7', $_POST['pozicija']);
$STH->bindParam(':8', $_POST['email']);
$STH->bindParam(':9', $user_id);
$orderID = $db -> lastInsertId();
$STH1 = $db->prepare("INSERT INTO workhours (ID_radnika) values($orderID)"); // where $value is the value you want to insert...
$STH->execute();
$STH1->execute();
} catch (PDOException $e) {
echo $e->getMessage();
}
echo "<p>Data submitted successfully</p>";
Комментарии:
1. может быть, lastInsertId может быть решением для этого?
2. Поскольку вы не используете mysql, вы можете не захотеть помечать вопрос как таковой…
3. @RyanJ Это явно mysql, просто не использующий функции mysql в php.
Ответ №1:
Использование lastInsertId будет делать то, что вы хотите:
$orderID = $db -> lastInsertId();
Ответ №2:
Используйте lastInsertId()
и вставляйте свои данные в другую таблицу, используя возвращаемое из нее значение.
Что-то вроде этого:
int $lastID = $db->lastInsertId();
if ( $lastID ) {
$STH = $db->prepare("INSERT INTO workhours (ID_radnici, value, userid) values($lastID, $value, $user_id)"); // where $value is the value you want to insert...
$STH->execute();
}
Комментарии:
1. но я использую php pdo, а не функции mysql
2. Как сказал @Andrew, он использует PDO, а не стандартные функции mysql (поскольку они устарели и допускают множественные угрозы безопасности). PDO или mysql_i — гораздо лучшие решения
3. Исправлен ответ. Спасибо.
4. Вы не можете получить последний вставленный идентификатор перед выполнением запроса. Сначала выполните первый запрос, затем вызовите lastInsertId()