PHP PDO select 数据库中与变量匹配的条目
PHP PDO select entry from database that matches a variable
我已经查看了此处关于此问题的其他一些答案,但我一直收到错误,所以这里继续。
每当用户访问该站点时,系统都会要求他们提供姓名并分配一个随机整数。当他们点击提交输入他们的名字时,表单被提交并保存到数据库中,用户被重定向回主页。如果随机数再次与数据库中保存的数字匹配,则会显示该名称。
我可以毫无问题地将值插入数据库,但我在将它们取回时遇到一些问题。
我与数据库的连接很好,只是为了这个问题的目的保留了通用值。
<?php
$min=1;
$max=100;
$rand_number = rand($min,$max);
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
//Set PDO Error Mode to Exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//Prepare SQL
$stmt = $conn->prepare("select nickname from users where number=".$rand_number);
$stmt->execute();
if (!$stmt) {
foreach($result as $row) {
echo $row['nickname'];
}
}
}
?>
我收到一条错误消息,指出我将查询与变量匹配的部分有问题。
我真正认为缺少的唯一一件事是您将在哪里获取数据。您可以使用 PDOStatement
的 fetch*
方法之一,或者简单地迭代语句本身(它实现 Traversable
)。
此外,您应该使用参数绑定。
$stmt = $conn->prepare('SELECT `nickname` FROM `users` WHERE `number` = ?');
$stmt->execute([$rand_number]);
while($nickname = $stmt->fetchColumn()) {
echo $nickname;
}
我已经查看了此处关于此问题的其他一些答案,但我一直收到错误,所以这里继续。
每当用户访问该站点时,系统都会要求他们提供姓名并分配一个随机整数。当他们点击提交输入他们的名字时,表单被提交并保存到数据库中,用户被重定向回主页。如果随机数再次与数据库中保存的数字匹配,则会显示该名称。
我可以毫无问题地将值插入数据库,但我在将它们取回时遇到一些问题。
我与数据库的连接很好,只是为了这个问题的目的保留了通用值。
<?php
$min=1;
$max=100;
$rand_number = rand($min,$max);
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
//Set PDO Error Mode to Exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//Prepare SQL
$stmt = $conn->prepare("select nickname from users where number=".$rand_number);
$stmt->execute();
if (!$stmt) {
foreach($result as $row) {
echo $row['nickname'];
}
}
}
?>
我收到一条错误消息,指出我将查询与变量匹配的部分有问题。
我真正认为缺少的唯一一件事是您将在哪里获取数据。您可以使用 PDOStatement
的 fetch*
方法之一,或者简单地迭代语句本身(它实现 Traversable
)。
此外,您应该使用参数绑定。
$stmt = $conn->prepare('SELECT `nickname` FROM `users` WHERE `number` = ?');
$stmt->execute([$rand_number]);
while($nickname = $stmt->fetchColumn()) {
echo $nickname;
}