Das habe ich ausprobiert ... Ich verwende eine select-Anweisung, um die ID abzurufen die übergeordnete Tabelle, in der die E-Mail der E-Mail entspricht, die vom Benutzer angegeben wurde. Nach dem Abrufen der ID aus der übergeordneten Tabelle möchte ich diese ID auf das Feld parent_id in der untergeordneten Tabelle auf einen Feldwert in einer untergeordneten Tabelle setzen.Mit PHP wie ich einen bestimmten Feldwert aus einer Datenbanktabelle abrufen und dann diesen einzelnen Feldwert in eine neue Tabelle eingeben
Zum Beispiel hat meine Elterntabelle ID, Vorname, Nachname, Adresse, Telefon, E-Mail, Bildgenehmigung und Datum. Dann hat das Kind Tabelle id, child_first_name, child_last_name und parent_id
// already connected to database successfully
{
try
{
$sql = 'INSERT INTO parents SET
first_name = :fname,
last_name = :lname,
address = :address,
phone = :phone,
email = :email,
picture_approval = :picture,
date = NOW()';
$s = $pdo->prepare($sql);
$s->bindValue(':fname', $_POST['g_first_name']);
$s->bindValue(':lname', $_POST['g_last_name']);
$s->bindValue(':address', $_POST['address']);
$s->bindValue(':phone', $_POST['phone']);
$s->bindValue(':email', $_POST['email']);
$s->bindValue(':picture', $_POST['pictures']);
$s->execute();
}
catch (PDOException $e)
{
$errors[] = 'Error adding parent to database.';
}
}
//the above code works perfectly
Aber dann diesen nächsten Teil funktioniert nie.
try
{
$sql = "SELECT id FROM parents WHERE email = :email";
$s = $pdo->prepare($sql);
$s->bindValue(':email', $_POST['email']);
$s->execute();
$s->bind_result($returned_id);
$s->fetch();
$fieldValue = "$returned_id";
}
catch (PDOException $e)
{
$errors[] = 'Error retrieving parent.';
}
Dann will ich meine INSERT INTO Kind Anweisung einrichten ... aber nicht wirklich sicher, wie seit meiner SELECT-Anweisung nicht richtig zu funktionieren scheint. Ich fand diese PHP function to extract a field value from a database aber es gibt nur den Wert aus, ich brauche es, um es in eine andere Tabelle zu setzen.
Wenn der Code sequentiell ausgeführt wird, würde ich 'PDO :: lastInsertID' verwenden. http://php.net/manual/en/pdo.lastinsertid.php – bassxzero
Also verwenden Sie PDO oder mysqli? Weil ['bind_result'] (http://php.net/manual/en/mysqli-stmt.bind-result.php) eine mysqli-Funktion ist, keine PDO-Funktion. –
* Ändern Sie Ihren Code in Ihrer Frage nicht drastisch. Dies ändert die gesamte Frage und macht bereits gegebene Antworten ungültig. Sie können auf Ihrem Beitrag aufbauen, indem Sie eine Änderung mit den neuen Änderungen neben dem bereits vorhandenen hinzufügen. Wenn Sie eine andere Frage haben, erstellen Sie bitte einen neuen Beitrag. – Siyual