J'essaie d'insérer des données d'un simple formulaire de registre dans MySQL. J'ai ma base de données hébergée sur Amazon AWS RDS, en utilisant DBeaver pour l'éditer. Lorsque je cours le code, je reçois ce qui suitJe n'arrive pas à comprendre pourquoi mon PHP n'insère pas dans MySQL DB
affected_rows. "Données insérées dans la base de données."; } else {echo "Une erreur est survenue Les articles n'ont pas été ajoutés."; } $ db-> close(); ?>
Comment résoudre ce problème? Mon code PHP est-il faux? Je suis confus si je ne peux pas utiliser MySQLi, comment pourrais-je déterminer cela? Je suppose qu'Amazon RDS MySQL est compatible.
<?php
// create short variable names
$name=$_POST['name'];
$birthdate=$_POST['birthdate'];
$email=$_POST['email'];
$password=$_POST['password'];
$address=$_POST['address'];
$city+$_POST['city'];
if (!get_magic_quotes_gpc()) {
$name = addcslashes($name);
$birthdate = addslashes($birthdate);
$email = addcslashes($email);
$password = addcslashes($password);
$address = addcslashes($address);
$city = addcslashes($city);
}
$host='xxxxxx'
$user='admin'
$password='xxxxx'
$dbname='users'
@ $db = mysqli_connect($host,$user,$password,$dbname)
if (mysqli_connect_errno()) {
echo 'Error: Could not connect to database. Please try again later.';
exit;
}
// Execute the query
$query = "INSERT INTO vestorinfo (name,birthdate,email,password,address,city)
VALUES ('$_POST[name]','$_POST[birthdate]','$_POST[email]','$_POST[password]','$_POST[address]','$_POST[city]')";
$result = mysqli_query($query)
or die ("Couldn't execute query."};
if ($result) {
echo $db->affected_rows." data inserted into database.";
} else {
echo "An error has occurred. The items were not added.";
}
$db->close();
?>
Voici le formulaire de la page html
<div id="registerform">
<form action="php/registerprocess.php" method="post" class="form-horizontal">
<fieldset>
<!-- Form Name -->
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="name">Name</label>
<div class="col-md-4">
<input id="name" name="name" placeholder="Your name" class="form-control input-md" required="" type="text">
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="birthdate">Birth Date</label>
<div class="col-md-4">
<input id="birthdate" name="birthdate" placeholder="07/04/1950" class="form-control input-md" required="" type="text">
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="email">Email</label>
<div class="col-md-4">
<input id="email" name="email" placeholder="" class="form-control input-md" required="" type="text">
</div>
</div>
<!-- Password input-->
<div class="form-group">
<label class="col-md-4 control-label" for="password">Password</label>
<div class="col-md-4">
<input id="password" name="password" placeholder="" class="form-control input-md" required="" type="password">
<span class="help-block">Must be >= 8 characters including at least 1 number</span>
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="email">Address</label>
<div class="col-md-4">
<input id="address" name="address" placeholder="" class="form-control input-md" required="" type="text">
</div>
</div>
<!-- Text input-->
<div class="form-group">
<label class="col-md-4 control-label" for="email">City</label>
<div class="col-md-4">
<input id="city" name="city" placeholder="" class="form-control input-md" required="" type="text">
</div>
</div>
</div>
</fieldset>
Il semble que votre PHP ne fonctionne pas et pourquoi ne pas renvoyer l'erreur réelle? –
Vous êtes très ouvert pour l'injection SQL. Puisque vous utilisez mysqli, profitez des [instructions préparées] (http://php.net/manual/fr/mysqli.quickstart.prepared-statements.php) et [bind_param] (http://php.net/ manual/fr/mysqli-stmt.bind-param.php). Cela permettra de résoudre tous les problèmes de devis gênants que vous pourriez avoir. Vérifiez également les erreurs mysqli en cours de route. – aynber
'$ city + $ _ POST ['city'];' devrait être '$ city = $ _ POST ['city'];' Aussi après avoir défini toutes ces valeurs, pourquoi retombez-vous à utiliser les valeurs $ _POST dans votre insert ? –