2015-12-02 51 views
0

我有一個php腳本與mysql數據庫。我有準備好的語句的UPDATE SET查詢。但是當我提交表單時,我得到的echo更新正確,但是當我查看數據庫時數據沒有改變。php mysqli更新集不起作用

什麼問題?

在此先感謝。

我的代碼是:

include 'connect.php'; 


$sql = "UPDATE names SET name = ?, lastname = ?, address = ?, place = ?, telephone = ?, description = ? WHERE id = ? "; 
$stmt = $link->prepare($sql); 
$stmt->bind_param("issssss", $id, $name, $lastname, $address, $place, $telephone, $description); 


$id = $_POST['id']; 
$name = $_POST['name']; 
$lastname = $_POST['lastname']; 
$address = $_POST['address']; 
$place = $_POST['place']; 
$telephone = $_POST['telephone']; 
$description = $_POST['description']; 
$stmt->execute(); 


if (! $sql) { 
    echo "Data not changed"; 
} else{ 
    echo "Data correct changed"; 
    } 
$stmt->close(); 
mysqli_close($link); 

形式的代碼是:

<form action="update.php" method="POST" > 
     <input type="text" name="id" placeholder="id"> 
      <br /><br /> 
     <input type="text" name="name" placeholder="name"> 
      <br /><br /> 
     <input type="text" name="lastname" placeholder="lastname"> 
      <br /><br /> 
     <input type="text" name="address" placeholder="address"> 
      <br /><br /> 
     <input type="text" name="place" placeholder="place"> 
      <br /><br /> 
     <input type="text" name="telephone" placeholder="telephone"> 
      <br /><br /> 
     <textarea rows="4" cols="50" placeholder="description" name="description"></textarea> 
      <br /><br /> 
     <input type="submit" name="update" value="update"> 

</form> 

回答

0

嘗試重新安排這樣

$id = $_POST['id']; 
$name = $_POST['name']; 
$lastname = $_POST['lastname']; 
$address = $_POST['address']; 
$place = $_POST['place']; 
$telephone = $_POST['telephone']; 
$description = $_POST['description']; 

// this one from top put here 
$stmt = $link->prepare($sql); 
$stmt->bind_param("ssssssi", $name, $lastname, $address, $place, $telephone, $description,$id); 

// and then execute sql 
$stmt->execute(); 

if (! $sql) { 
    echo "Data not changed"; 
} else{ 
    echo "Data correct changed"; 
} 
$stmt->close(); 
mysqli_close($link); 
+0

這不會影響任何東西。您可以在您的代碼中的任何位置檢查http://php.net/manual/en/mysqli-stmt.bind-param.php。 – Saty

+0

固定綁定,抱歉沒有看到它 – Standej

1

你綁定PARAM not in a sequence你需要把你的id at last代碼

<?php 
$sql = "UPDATE names SET name = ?, lastname = ?, address = ?, place = ?, telephone = ?, description = ? WHERE id = ? "; 
$stmt = $link->prepare($sql); 
$stmt->bind_param("ssssssi", $name, $lastname, $address, $place, $telephone, $description,$id); 

並使用$stmt->affected_rows檢查數據被更新或不

$stmt->execute(); 
//You can get the number of rows affected by your query 
$nrows = $stmt->affected_rows; 
if (!$nrows) { 
    echo "Data not changed"; 
}