Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在PDO中获取并发布_Php_Pdo - Fatal编程技术网

Php 在PDO中获取并发布

Php 在PDO中获取并发布,php,pdo,Php,Pdo,我在示例页面中遇到问题,该页面将从url“update.php?id=1”检索学生id以在查询中使用它,当我在查询中手动写入id时,它就工作了。。不明白 update.php <?php require 'database.php'; $id=$_GET['id']; if (!empty($_POST)) { $name=$_POST['name']; $mobile=$_POST['mobile']; $pdo=Database::connect(); $sql="UPDATE stu

我在示例页面中遇到问题,该页面将从url“update.php?id=1”检索学生id以在查询中使用它,当我在查询中手动写入id时,它就工作了。。不明白

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>

更新学生资料
名称
流动电话号码。
添加

更新:为了澄清这一点,id从其他页面的url地址检索,就像我说的,而不是从html表单检索。。。url'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);
此外,您还应添加以下内容(在文件顶部):


另一个想法:可能帖子中的内容是空的?

您的查询中没有使用$id
它应该是像$sql=“updatestudents SET name=?,mobile=?WHERE id=“.$id.”

为什么不将id变量与POST表单一起发送呢

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


然后使用
$\u POST['id']
而不是
$\u GET['id']

检索它,您可以使用
$id=$\u GET['id']
GET
但您的表单是
POST
?!为了明确这一点,id从其他页面的url地址检索,就像我说的,而不是从html表单检索。。。url'update.php?id=1'我应该怎么做?您好,请看一看,以明确从其他页面的url地址检索id,就像我说的不是从html表单检索的一样。。。url'update.php?id=1'我应该怎么做?你不必在url中发送id(GET就是这么做的),你可以在POST表单中发送。
<input type="hidden" name="id" value="x">