Mettre à jour la requête PHP MySQL
Quelqu'un peut-il m'aider à comprendre pourquoi cette requête de mise à jour n'est pas mise à jour les champs dans ma base de données? J'ai ceci dans ma page php pour récupérer les valeurs actuelles de la base de données:
<?php
$query = mysql_query ("SELECT * FROM blogEntry WHERE username = 'bobjones' ORDER BY id DESC");
while ($row = mysql_fetch_array ($query))
{
$id = $row['id'];
$username = $row['username'];
$title = $row['title'];
$date = $row['date'];
$category = $row['category'];
$content = $row['content'];
?>
Ici, j'ai mon Formulaire HTML:
<form method="post" action="editblogscript.php">
ID: <input type="text" name="id" value="<?php echo $id; ?>" /><br />
Username: <input type="text" name="username" value="<?php echo $_SESSION['username']; ?>" /><br />
Title: <input type="text" name="udtitle" value="<?php echo $title; ?>"/><br />
Date: <input type="text" name="date" value="<?php echo $date; ?>"/><br />
Message: <textarea name = "udcontent" cols="45" rows="5"><?php echo $content; ?></textarea><br />
<input type= "submit" name = "edit" value="Edit!">
</form>
et voici ma 'editblogscript':
<?php
mysql_connect ("localhost", "root", "");
mysql_select_db("blogass");
if (isset($_POST['edit'])) {
$id = $_POST['id'];
$udtitle = $_POST['udtitle'];
$udcontent = $_POST['udcontent'];
mysql_query("UPDATE blogEntry SET content = $udcontent, title = $udtitle WHERE id = $id");
}
header( 'Location: index.php' ) ;
?>
Je ne comprends pas pourquoi cela ne fonctionne pas.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Vous devez avoir des guillemets simples autour de n'importe quel type VARCHAR contenu dans vos requêtes. Si votre requête de mise à jour doit être:
Aussi, c'est mauvais pour la mise à jour de votre base de données directement sur le contenu à partir d'un POSTE. Vous devez désinfecter la réception de vos données avec la fonction mysql_real_escape_string.
Sans savoir de quoi l'erreur que vous obtenez est je suppose qu'il manque des guillemets. essayez ce qui suit:
Ici j'ai mis à jour deux variables et la date et l'heure actuelles
$id = "1";
$titre = "phpmyadmin";
fonction now() mise à jour date et l'heure actuelles.
Besoin d'ajouter de devis pour que le besoin d'utiliser l'opérateur de point:
Tout d'abord, vous devez définir "ne fonctionne pas".
Deuxièmement, je suppose que votre champs de la table "contenu" est de type varchar/texte, vous devez le mettre entre guillemets.
content = '{$content}'
Et le dernier mais non le moindre: l'utilisation
echo mysql_error()
directement après une requête à déboguer.vous devez écrire des guillemets simples, puis des guillemets, point avant le nom de domaine et après comme ça
Mise à jour d'une ligne ou d'une colonne d'une table
Essayer comme ça dans la requête sql, Cela fonctionnera très bien.
Si vous devez mettre à jour plusieurs colonnes,
L'utilisation de ce genre,