J'ai un formulaire avec deux champs avec les attributs name de 'photo_title' et 'photographer_name', et un champ caché nommé 'photo_id'. Lorsque l'utilisateur appuie sur le bouton Envoyer, je souhaite qu'il mette à jour deux tables distinctes dans la base de données. Je peux l'obtenir pour mettre à jour une seule table, mais dès que j'essaye de rejoindre la deuxième table, ça ne me plaît pas.Comment mettre à jour plusieurs tables en utilisant des instructions préparées avec mySQLi?
Je pense qu'il y a peut-être un problème avec ma chaîne de requête ou la liaison. Comment puis-je mettre à jour deux valeurs séparées dans deux tables distinctes dans ma base de données Mysql tout en utilisant des instructions préparées?
Voici le PHP:
if (array_key_exists('update', $_POST)) {
$sql = 'UPDATE photos SET photos.photo_title = ?, photographers.photographer_name = ?
LEFT JOIN photographers ON photos.photographer_id = photographers.photographer_id
WHERE photo_id = ?';
$stmt = $conn->stmt_init();
if ($stmt->prepare($sql)) {
$stmt->bind_param('ssi', $_POST['photo_title'], $_POST['photographer_name'], $_POST['photo_id']);
$done = $stmt->execute();
}
}
est ici la forme:
<form id="form1" name="form1" method="post" action="">
<input name="photo_title" type="text" value=""/>
<textarea name="photographer_name"></textarea>
<input type="submit" name="update" value="Update entry" />
<input name="photo_id" type="hidden" value="<?php echo $photo_id ?>"/>
</form>
J'ai compris mon erreur. J'ai eu les commandes SQL dans le mauvais ordre. La chaîne de requête doit avoir lu $ les photos UPDATE sql = \t \t \t \t LEFT JOIN photographes \t \t \t \t SUR photos.photographer_id = photographers.photographer_id \t \t \t \t SET photos.photo_title =?, Photographers.photographer_name =? \t \t \t \t OERE photos.photo_id =? '; – zeckdude