【发布时间】:2017-07-30 18:14:38
【问题描述】:
所以, 我刚开始使用 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);
$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 错误。我不知道自己做错了什么,因为我是初学者。
请让我知道我做错了什么以及如何解决这个问题。
更新代码
<?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($stmt);
} catch ($row = $result->fetch() {
?>
<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 } $stmt->close(); ?>
【问题讨论】:
-
您没有在值中包含绑定。
-
你也在混用不同的mysql api,天知道是用哪一个连接的
-
查看服务器的错误日志总是有助于调试。错误信息在那里。
-
您的代码在太多级别上失败。
-
好吧,我试过了哈哈@Fred-ii-