我在 SO 上发现了几个类似的问题,但我是 PDO 新手,无法成功地根据我的标准调整代码..
我不知道为什么这段代码不起作用。
我不知道为什么这段代码不起作用。
我不知道为什么这段代码不起作用。
我有表用户。
我有表格帖子
我的代码 html 表单选择和代码 php 。
<form method="POST" name="setform">
<div class="moncompte">
<!-- pseudo--> <label class="moncompteLabel" >Pseudo</label>
<input type="text" name="pseudo" class="moncompteInput" autocomplete="off">
</div>
<div class="moncompte">
<!-- nom--> <label class="moncompteLabel">Nom d'utilisateur</label>
<input type="text" name="fullname" class="moncompteInput" autocomplete="off">
</div>
<div class="moncompte">
<!-- email--> <label class="moncompteLabel">Email</label>
<input type="email" name="email" class="moncompteInput" autocomplete="off">
</div>
<div class="moncompte">
<!-- sexe--> <label class="moncompteLabel"> Sélectionnez sexe </label>
<select name="genre" title="sexe" class="moncompteSelect">
<option value="0" selected="selected">Homme</option>
<option value="1">Femme</option>
</select>
</div>
<div class="moncompte">
<!-- date--> <label class="moncompteLabel"> Date de naissance</label>
<div class="dateSelect">
<select name="naissanceJ" title="jour" class="naissanceSelect" >
<option value="0">jour</option>
<option value="1" selected="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select name="naissanceM" title="mois" class="naissanceSelect">
<option value="0">mois</option>
<option value="1" selected="1">jan</option>
<option value="2">fév</option>
<option value="3">ma</option>
<option value="4">avr</option>
</select>
<select name="naissanceA" title="année" class="naissanceSelect">
<option value="0">année</option>
<option value="2018" selected="1">2018</option>
<option value="2017">2017</option>
<option value="2016">2016</option>
</select>
</div>
</div>
<div class="moncompte">
<input type="submit" name="enregistrer" value="enregistrer" class="moncompteSub">
</div>
</form>
PHP代码
$idd = trim(htmlspecialchars($_SESSION['user_id']));
$id = filter_var($idd, FILTER_SANITIZE_NUMBER_INT);
$pseudo = htmlspecialchars($_POST['pseudo']);
$fullname = htmlspecialchars($_POST['fullname']);
$email = htmlspecialchars($_POST['email']);
$genre = htmlspecialchars($_POST['genre']);
$stmt = $connect->prepare("INSERT INTO users(pseudo,email,naissancej,naissancem,naissancea,genre,fullname)
VALUES(:pseudo,:email,:naissancej,:naissancem,:naissancea,
:genre,:fullname) ON DUPLICATE KEY UPDATE
pseudo=:pseudo2,
email=:email2,
naissancej=:naissanceJ2,
naissancem=:naissanceM2,
naissancea=:naissanceA2,
genre=:genre2,
fullname=:fullname2 WHERE id=5 ");
$stmt->execute(array(
':pseudo'=> $pseudo,
':email'=> $email,
':naissancej'=> $naissanceJ,
':naissancem'=> $naissanceM,
':naissancea'=> $naissanceA,
':genre'=> $genre,
':fullname'=> $fullname,
':pseudo2'=> $pseudo,
':email2'=> $email,
':naissancej2'=> $naissanceJ,
':naissancem2'=> $naissanceM,
':naissancea2'=> $naissanceA,
':genre2'=> $genre,
':fullname2'=> $fullname
));
最佳答案
INSERTS
没有 WHERE
子句!删除这个。
INSERT INTO users
(pseudo,email,naissancej,naissancem,naissancea,genre,fullname)
VALUES
(:pseudo,:email,:naissancej,:naissancem,:naissancea,:genre,:fullname)
ON DUPLICATE KEY UPDATE
pseudo=:pseudo2,
email=:email2,
naissancej=:naissanceJ2,
naissancem=:naissanceM2,
naissancea=:naissanceA2,
genre=:genre2,
fullname=:fullname2
关于php - 使用 ON DUPLICATE KEY 子句时更新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48435089/