我有错误:插入值列表不匹配列列表: 1136列计数与第1行的值计数不匹配
这是我的插入功能
在phpmyadmin中插入:
INSERT INTO `najomnik`
(`id_najomnik`, `meno`, `priezvisko`,
`rodne_cislo`, `telefon`, `mail`)
VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6])id_najomnik是int
public function insert($meno, $priezvisko, $rodne_cislo, $telefon, $mail)
{
try{
$sql = "INSERT INTO `najomnik`
(meno,priezvisko,rodne_cislo,telefon,mail)
VALUES ('meno, priezvisko,r odne_cislo, telefon, mail')";
$stmt = $this->db->prepare($sql);
$stmt->execute();
return true;
} catch(PDOException $e) {
echo $e->getMessage();
return false;
}
}这是我要插入值的表单。
<?php
require_once 'nav.php';
require_once 'conn.php';
?>
<form method="post" action="success.php" enctype="multipart/form-data">
<div class="form-group">
<label for="firstname">First Name</label>
<input required type="text" class="form-control" id="meno" name="meno">
</div>
<div class="form-group">
<label for="lastname">Last Name</label>
<input required type="text" class="form-control" id="priezvisko" name="priezvisko">
</div>
<div class="form-group">
<label for="dob">Date Of Birth</label>
<input type="text" class="form-control" id="rodne_cislo" name="rodne_cislo">
</div>
<div class="form-group">
<label for="email">Email address</label>
<input required type="email" class="form-control" id="mail" name="mail" aria-describedby="emailHelp" >
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-groupform-group">
<label for="phone">Contact Number</label>
<input type="text" class="form-control" id="telefon" name="telefon" aria-describedby="phoneHelp" >
<small id="phoneHelp" class="form-text text-muted">We'll never share your number with anyone else.</small>
</div>
<br/>
<button type="submit" name="submit" class="btn btn-primary btn-block">Submit</button>
</form>我试着改变它
public function insert($meno, $priezvisko, $rodne_cislo, $telefon, $mail) {
try{
$sql = "INSERT INTO `najomnik` (meno,priezvisko,rodne_cislo,telefon,mail) VALUES (':meno, :priezvisko, :rodne_cislo, :telefon, :mail')";
$stmt = $this->db->prepare($sql);
$stmt->bindparam(':meno', $meno);
$stmt->bindparam(':priezvisko', $priezvisko);
$stmt->bindparam(':rodne_cislo', $rodne_cislo);
$stmt->bindparam(':telefon', $telefon);
$stmt->bindparam(':mail', $mail);
$stmt->execute();
return true;
} catch(PDOException $e) {
echo $e->getMessage();
return false;
}
}但是在这种情况下,我得到的是错误:无效的参数号:绑定变量的数量不匹配令牌的数目。
发布于 2022-04-15 16:33:32
您不应该在值列表中引用。
每个值都需要是占位符,然后在调用$stmt->execute()时使用值提供占位符。
public function insert($meno, $priezvisko, $rodne_cislo, $telefon, $mail) {
try{
$sql = "INSERT INTO `najomnik` (meno,priezvisko,rodne_cislo,telefon,mail) VALUES (:meno, :priezvisko, :rodne_cislo, :telefon, :mail)";
$stmt = $this->db->prepare($sql);
$stmt->execute([
':meno' => $meno,
':priezvisko' => $priezvisko,
':rodne_islo' => $rodne_islo,
':telefon' => $telefon,
':mail' => $mail
]);
return true;
} catch(PDOException $e) {
echo $e->getMessage();
return false;
}
}https://stackoverflow.com/questions/71886522
复制相似问题