Je dois extraire les noms d'histoire de ma table de base de données (histoire), les changer en format convivial (Game of Thrones -> jeu-de-trônes) et les insérer dans une autre colonne dans la même table (story.permalink). Y at-il un bon moyen de le faire? Ma fonction php actuelle que j'exécute à partir du terminal mac ne fonctionne pas.Comment puis-je extraire des enregistrements de la base de données, les ajuster et les insérer dans une autre colonne?
$conn = update_dao_connect();
$get_stmt = $conn->prepare("select id, name from story");
$update_stmt = $conn->prepare("update story set permalink=? where id=?");
$update_stmt->bind_param("si", $permalink, $id);
if($get_stmt->execute()){
$get_stmt->bind_result($id, $name);
while($get_stmt->fetch()){
$permalink = generate_story_permalink($name);
if(!$update_stmt->execute()){
error_log("update permalink failed for kamp id: ".$id.", name: ".$name.", permalink: ".$permalink);
}
}
}
else {
error_log("execute get all story for copy_story_names_to_permalinks fail");
}
sortie terminal
(pour tous les enregistrements dans la base):
permalien mise à jour a échoué pour id histoire: 198, nom: histoire de financement Cercle, permalien: financement-cercles histoire
permalien mise à jour a échoué pour id histoire: 199, nom: Rentah, permalien: rentah-1
mise à jour permalien échoué pour l'histoire id: 200, nom: Kano informatique, permalien: kano-informatique
mise à jour permalien échoué pour l'histoire id: 201, nom: Outplacement, permalien: outplacement -1
Je vous remercie n avance!
Si vous n'êtes pas en mesure d'exécuter, vous devez également enregistrer la valeur renvoyée par ['mysqli_stmt_error()'] (http://php.net/manual/fr/mysqli-stmt.error .php) – Qirel
Merci, j'ai ajouté error_log ($ conn-> error) après la ligne if (! $ update_stmt-> execute()) {line et ça m'a donné: "Les commandes sont désynchronisées, vous ne pouvez pas lancer cette commande maintenant " –
Cela signifie que vous (probablement) devez fermer l'instruction précédente avant d'en exécuter une nouvelle. – Qirel