我是pdo的新手。在这里,我正在尝试使用pdo编辑和更新我的数据库记录。下面我在这里发布了我的两个页面编码。在主页面中,我将获取特定数据库表的详细信息。如果用户单击“编辑”链接,它将重定向到另一个页面,以使用GET['id'];
编辑特定记录的值。在editpage中,我正在尝试获取已存储的值。但我无法取得它。我尝试了print_r($username);
和var_dump($username);
。它没有显示editpage中的值。
主页PHP编码:
<?php
include('config.php');
$sql = "SELECT * FROM ebusers";
$db = $conn->query($sql);
$db->setFetchMode(PDO::FETCH_ASSOC);
while($row = $db->fetch())
{
echo "<td>". $row['UserID'] ."</td>";
echo "<br>";
echo "<td><a target=_blank href='edit.php?id=". $row['UserName'] ."'>Edit</a></td>";
echo "<br>";
}
?>
编辑页面PHP编码:
<?php
include('config.php');
$uid = $_GET['id'];
$sql = "SELECT * FROM ebusers WHERE UserID = '$uid'";
$db = $conn->query($sql);
$db->setFetchMode(PDO::FETCH_ASSOC);
if($db->fetchColumn()>=1)
{
while($row = $db->fetch())
{
$username = $row['UserName'];
}
}
?>
<html>
<head>
<title></title>
</head>
<body>
<form action="delete.php" method="post">
<input type="text" name="name" value="<?php echo $username;?>" />
<input type="submit" />
</form>
</body>
</html>
配置PHP页面
$user = "root";
$password = "password";
try
{
$conn = new PDO('mysql:host=localhost;dbname=evouchers', $user, $password);
$conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo 'DATABASE ERROR : ' . $e->getMessage();
}
我不知道我犯了哪个错误?
答案 0 :(得分:1)
为什么要先获取第一列?在if语句中评估它。然后取整行?
更改时会发生什么
if($db->fetchColumn()>=1)
{
while($row = $db->fetch())
{
$username = $row['UserName'];
}
}
到
while($row = $db->fetch())
{
var_dump($row['UserName']);
}