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();
?>
答
要看看有什么错误的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']
你使用'$ ID = $ _ GET [ '身份证']检索;''GET'但你的表格是'POST'? – Rizier123 2014-12-13 10:11:23
为了清楚这个id从其他页面的URL地址检索像我说的不是从HTML表单... url'update.php?id = 1'我应该怎么做? – Bionz 2014-12-13 10:54:51