Salut actuellement obtenir une discordance avec Id, mais ne peut pas trouver pourquoi il ne reçoit pas l'ID de la table (par exemple 0,1,2, etc), la page d'affichage leur montre bien aller les yeux croisés en le regardant. Est-ce que la table peut aussi être rangée en code? semble désordonné avec tous les tags <?php ?>
. En utilisant mysql 5.5, autant que je sache, utiliserComment résoudre cette erreur MYSQL PHP Update Function version
Erreur:
Could not able to execute UPDATE weightsmeasures SET 1 = 'dszfxc',2 = 'Kilograms',10 = 'Litre',11 = 'Litre',12 = 'Ton',13 = 'vdd',14 = 'mega' WHERE id = 14. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 = 'dszfxc',2 = 'Kilograms',10 = 'Litre',11 = 'Litre',12 = 'Ton',13 = 'vdd',14 ' at line 1
forme d'entrée index.php
<div>
<?php $result = tablename(weightsmeasures); ?>
<form method="post" action="update.php">
<div class="col-8">
<?php while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['id'] . "</td>"; ?>
<td>
<input class="form-control" type="text" value="<?php echo $row['WeightorMeasure']; ?>" id="<?php echo $row['id']; ?>" name="<?php echo $row['id']; ?>">
</td>
<?php
echo "</tr>";
}
?>
</div>
<input type="submit" value="Update">
</form>
</div>
update.php
$id = $_POST['id'];
$sql = "UPDATE weightsmeasures SET";
$fieldValuePairs = array();
foreach($_POST as $key => $value)
if($key != 'id')
$fieldValuePairs[] = "$key = '$value'";
$sql .= " ". implode(',', $fieldValuePairs)." WHERE id = $id";
Cordialement
** AVERTISSEMENT **: Lorsque vous utilisez 'mysqli' vous devriez utiliser [requêtes paramétrées] (http://php.net/manual/fr/mysqli.quickstart.prepared-statements.php) et [' bind_param' ] (http://php.net/manual/fr/mysqli-stmt.bind-param.php) pour ajouter des données utilisateur à votre requête. ** N'utilisez PAS ** l'interpolation ou la concaténation de chaîne pour y parvenir car vous avez créé un [bogue d'injection SQL] grave (http://bobby-tables.com/). ** NE JAMAIS ** mettre directement dans une requête les données utilisateur '$ _POST',' $ _GET' ou ** tout **, cela peut être très dangereux si quelqu'un cherche à exploiter votre erreur. – tadman
Note: L'interface orientée objet de 'mysqli' est significativement moins verbeuse, rendant le code plus facile à lire et à auditer, et n'est pas facilement confondue avec l'interface' mysql_query' obsolète. Avant de vous investir trop dans le style procédural, cela vaut la peine de changer. Exemple: '$ db = new mysqli (...)' et '$ db-> prepare (" ... ")' L'interface procédurale existe est un artefact de l'ère PHP 4 lorsque l'API 'mysqli' a été introduite et ne devrait pas être utilisée dans nouveau code. – tadman