Php 如何使用PDO显示所有数据库结果
所以, 我刚开始使用PDO,连接和东西都很好,但现在我有一个小问题。我被困在一个部分,我想显示每个表6个结果。我的代码如下:Php 如何使用PDO显示所有数据库结果,php,mysql,pdo,echo,Php,Mysql,Pdo,Echo,所以, 我刚开始使用PDO,连接和东西都很好,但现在我有一个小问题。我被困在一个部分,我想显示每个表6个结果。我的代码如下: <?php $sql = "SELECT * FROM db WHERE id BETWEEN 1 AND 6"; $stmt->bindParam(':userName', $userName); $stmt->bindParam(':hours', $hours); try { $stmt = $conn->prepare($sql);
<?php
$sql = "SELECT * FROM db WHERE id BETWEEN 1 AND 6";
$stmt->bindParam(':userName', $userName);
$stmt->bindParam(':hours', $hours);
try {
$stmt = $conn->prepare($sql);
$result = $stmt->execute($parameters);
} while($row = $result->fetch_assoc()){ ?>
<tr>
<td><b><?php echo $row['hours'] ?></b></td>
<td><a href="#"></a></td>
<td id="dayhour-1">
<input placeholder="Name" type="text" class="form-control" id="1" value="<?php echo $row['userName'] ?>">
</td>
</tr>
<?php } $stmt->close(); ?>
数据库连接:
<?php
$db_host = "localhost";
$db_name = "xxx";
$db_user = "xxx";
$db_pass = "xxx";
$db_opts = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false
);
$conn = new PDO("mysql:host=$db_host;dbname=$db_name;charset=utf8mb4", $db_user, $db_pass, $db_opts);
?>
当我进入网页时,它显示了众所周知的500错误。我不知道我做错了什么,因为我是先发球员。
请让我知道我做错了什么,以及如何解决这个问题
更新代码
好的,我可以从这里看到一个错误: 在{}不起作用时尝试{}。 这是从do{}while和try{}catch{}组合语法。这将抛出一个500内部服务器错误 其次,根据评论,您需要在一个数据库连接器上进行标准化。我可能会和PDO一起去 编辑 下面是一个使用PDO的预处理语句的示例
答案如下:
<?php
$sql = "SELECT * FROM database WHERE id BETWEEN 1 AND 5";
$stmt = $conn->query($sql);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_OBJ)){
?>
<tr>
<td><b><?php echo $row->hours ?></b></td>
<td><a href="#"></a></td>
<td id="dayhour-1">
<input type="text" class="form-control" id="1" value="<?php echo $row->username ?>">
</td>
</tr>
<?php } ?>
这段代码将完成它的工作。它是完全完美的PDO,100%工作。一位朋友帮了我的忙。你没有在值中包含绑定。你还混合了不同的mysql API,上帝只知道哪一个用于连接。查看服务器的错误日志总是有助于调试。错误信息就在那里。你的代码在太多的级别上失败了。嗯,我试过了hahah@Fred ii Well,@Spholt,我试过了以下方法,但不起作用:请不要只是说它不起作用。。。。请给出您收到的确切错误消息。想象一下,你处于一个支持者的位置,试图帮助一个只说这不起作用的人-@Willem Jelle我已经为您编写了代码,但看起来您仍然有一些基本的语法错误。我建议使用一个文本编辑器或带有过梁的IDE来突出这些问题。顺便说一句,如果我输入你的代码,我不会得到一个页面错误5**错误,但信息不会显示太多。感谢efford,非常感谢兄弟@spholthm,你试过在脚本顶部打开错误报告吗?ini设置“显示错误”,1;ini设置“显示启动错误”,1;错误报告e\u ALL;。这会让我们更好地了解正在发生的事情。很高兴听到你找到了解决方案!
<?php
// Connect to your database
$pdo = new PDO("mysql:host=localhost;dbname=my_database", "username", "password")
->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Prepare your statement
$stmt = $pdo->prepare("SELECT * FROM db WHERE id BETWEEN ? AND ?");
// Execute the statement
$results = $stmt->execute([1,6])->fetchAll(PDO::FETCH_ASSOC);
// Loop through your resuls
foreach ($results as $row) {
?>
<tr>
<td><b><?php echo $row['hours'] ?></b></td>
<td><a href="#"></a></td>
<td id="dayhour-1">
<input type="text" value="<?php echo $row['userName'] ?>">
</td>
</tr>
<?php
}
<?php
$sql = "SELECT * FROM database WHERE id BETWEEN 1 AND 5";
$stmt = $conn->query($sql);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_OBJ)){
?>
<tr>
<td><b><?php echo $row->hours ?></b></td>
<td><a href="#"></a></td>
<td id="dayhour-1">
<input type="text" class="form-control" id="1" value="<?php echo $row->username ?>">
</td>
</tr>
<?php } ?>