2014-12-13 109 views
0

我有問題的示例頁,將檢索URL'update.php?id = 1'的學生ID使用它在查詢中,當我在查詢它的工作手動編寫ID ..不能想出GET和POST在PDO

update.php

<?php 
require 'database.php'; 
$id=$_GET['id']; 
if (!empty($_POST)) { 
$name=$_POST['name']; 
$mobile=$_POST['mobile']; 
$pdo=Database::connect(); 
$sql="UPDATE students SET name=? , mobile=? WHERE id=?"; 
$q=$pdo->prepare($sql); 
$q->execute(array($name,$mobile,$id)); 
Database::disconnect(); 
header('Location: index.php'); 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
</head> 
<body> 
<div> 
<div> 
<div> 
<h3>Update Student Information</h3> 
</div> 
<form action="update.php" method="post"> 
<div> 
<label>Name</label> 
<div> 
<input name="name" type="text"> 
</div> 
</div> 
<div> 
<label>Mobile No.</label> 
<div> 
<input name="mobile" type="text"> 
</div> 
</div> 
<div> 
<button type="submit">Add</button> 
<a href="index.php">Back</a> 
</div> 
</form> 
</div> 
</div> 
</body> 
</html> 

UPDATE:爲了更清楚的ID從其他頁面的URL地址檢索就像我從HTML表單...網址「update.php說不?id = 1'我應該怎麼做?

的index.php

<?php 
include 'database.php'; 
$pdo = Database::connect(); 
$sql = 'SELECT * FROM students'; 
foreach ($pdo->query($sql) as $row) { 
echo '<tr>'; 
echo '<td>'. $row['name'] . '</td>'; 
echo '<td>'. $row['mobile'] . '</td>'; 
echo '<td><a href="show.php?id='. $row['id'].'">Show</a></td>'; 
echo '<td><a href="update.php?id='. $row['id'].">Update</a></td>'; 
echo '</tr>'; 
} 
Database::disconnect(); 
?> 
+2

你使用'$ ID = $ _ GET [ '身份證']檢索;''GET'但你的表格是'POST'? – Rizier123 2014-12-13 10:11:23

+0

爲了清楚這個id從其他頁面的URL地址檢索像我說的不是從HTML表單... url'update.php?id = 1'我應該怎麼做? – Bionz 2014-12-13 10:54:51

回答

0

要看看有什麼錯誤的PDO兩罰全中,添加以下代碼:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

還應該添加這些(在你的文件的頂部):

ini_set('display_errors', 1); 
ini_set('display_startup_errors',1); 
error_reporting(-1); 

另一個想法:也許從帖子的東西是空的?

-2

在查詢 您沒有使用$ ID應該是這樣$ sql中的一些東西= 「更新學生樹立?name =上,手機=?WHERE ID =」 $標識。」「

+0

你好,看看[準備報表](http://php.net/manual/en/pdo.prepared-statements.php) – DarkBee 2014-12-13 10:25:26

0

爲什麼不髮帶有POST表單的id變量呢?

<input type="hidden" name="id" value="x"> 

然後用$_POST['id']代替$_GET['id']

+0

爲了清楚這個ID從其他網頁的URL地址檢索像我說的不是從html表單... url'update.php?id = 1'我應該怎麼做? – Bionz 2014-12-13 10:55:36

+0

您不必在URL中發送該ID(GET就是這樣做的),您可以改爲以POST形式發送它。 – KEK 2014-12-13 11:00:35

+0

最佳解決方案,謝謝 – Bionz 2014-12-13 21:36:29