2016-09-19 99 views
0

Hello everyone?! When I change the value of my texboxes, I have this kind of error. Click to see the image.当我更新时的错误消息

而且这里是我的代码。我不知道到底发生了什么。我希望有人能帮助我。先谢谢你。 :(

<!--Update--> 
<?php 
    include "config.php"; 
    include "header.php"; 
    if(isset($_GET['u'])): 
    if(isset($_POST['bts'])): 
     $stmt = $mysqli->prepare("UPDATE personal SET id_personal=?, name=?, date=?, datepaid=?, amount=? WHERE id_personal=?"); 
     $stmt->bind_param('sssss', $id, $en, $date, $dp, $amnt); 

     $id = $_POST['id']; 
     $en = $_POST['en']; 
     $date = $_POST['date']; 
     $dp = $_POST['dp']; 
     $amnt = $_POST['amnt']; 

     if($stmt->execute()): 
     echo "<script>location.href='index.php'</script>"; 
     else: 
     echo "<script>alert('".$stmt->error."')</script>"; 
     endif; 
    endif; 
    $res = $mysqli->query("SELECT * FROM personal WHERE id_personal=".$_GET['u']); 
    $row = $res->fetch_assoc(); 
?> 
+1

错误非常明显。 –

+0

我也试过,在我的代码中。我只把确切的5。 –

+0

'sssss'是什么? – xzegga

回答

0

的错误是非常明显的“变量数不匹配的参数个数”。

你“$stmt->bind_param()”应该有六个变量,因为你已经在6位被称为变量“$mysqli->prepare()”语句

0

如果要更新或更改ID,那么你应该通过一个多参数/参数

如果你不想更新ID然后执行以下操作:。

$stmt = $mysqli->prepare("UPDATE personal SET name=?, date=?, datepaid=?, amount=? WHERE id_personal=?"); 
    $stmt->bind_param('sssss', $en, $date, $dp, $amnt, $id); 


    $en = $_POST['en']; 
    $date = $_POST['date']; 
    $dp = $_POST['dp']; 
    $amnt = $_POST['amnt']; 
    $id = $_POST['id']; 

希望它有帮助!