J'ai le code PHP suivant, qui est censé insérer des données dans le cas où le champ nom d'utilisateur est vide pour un nom d'utilisateur donné, ou mettre à jour les données si un nom d'utilisateur existe. Pour l'instant, l'insertion fonctionnait bien, mais elle ne passait jamais à la clause de mise à jour.
Cependant, la clause d'insertion ne reconnaît pas ma variable de test, sans raison apparente. Les erreurs que j'obtiens sont les suivantes :
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given
y
Notice: Undefined variable: checkUsername
qui sont assez récentes.
if($cmd=="submitinfo"){
$usernameQuery = "select username from USERS where username = $username";
$xblah = $con->query($usernameQuery);
while ($row = mysqli_fetch_assoc($xblah))
{
$checkUsername = $row['username'];
}
if ($checkUsername == null) {
$userQuery = "INSERT INTO USERS VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
if ($userInfo = $con->prepare($userQuery)) {
$userInfo->bind_param("ssssssssssssssssssss", $username, $firstname, $lastname, $flaggedauctions, $lastauction, $street1, $city1, $postcode1, $street2, $city2, $postcode2, $phone, $mobilephone, $fax, $email, $website, $bank, $banknumber, $accountnumber, $comments);
$userInfo->execute();
$userInfo->close();
echo "true";
} else {
echo "false";
}
print_r($con->error);
}
else if ($checkUsername == $username) {
$userQuery = "UPDATE USERS SET firstname = ?, lastname = ?, flaggedauctions = ?, lastauction = ?, street1 = ?, city1 = ?, postcode1 = ?, street2 = ?, city2 = ?, postcode2 = ?, phone = ?, mobilephone = ?, fax = ?, email = ?, website = ?, bank = ?, banknumber = ?, accoutnumber = ? WHERE username = ?";
if ($userInfo = $con->prepare($userQuery)) {
$userInfo->bind_param("sssssssssssssssssss", $firstname, $lastname, $flaggedauctions, $lastauction, $street1, $city1, $postcode1, $street2, $city2, $postcode2, $phone, $mobilephone, $fax, $email, $website, $bank, $banknumber, $accountnumber, $username);
$userInfo->execute();
$userInfo->close();
echo "true";
} else {
echo "false";
}
print_r($con->error);
}
}
Quelle est la meilleure façon d'effectuer une mise à jour ou une insertion en fonction du contenu de $username par rapport au champ username ?