GET和POST在PDO

问题描述:

我有问题的示例页,将检索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

要看看有什么错误的PDO两罚全中,添加以下代码:

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

还应该添加这些(在你的文件的顶部):

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

另一个想法:也许从帖子的东西是空的?

在查询 您没有使用$ ID应该是这样$ sql中的一些东西= “更新学生树立?name =上,手机=?WHERE ID =” $标识。”“

+0

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

为什么不发带有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