我希望有人愿意帮助我 - 因为我知道这不应该太难。
我发现并教导了我想做的事情的例子。不幸的是,示例代码使用了旧的MYSQLi,我不知道如何将其更改为PDO。
Here is a link to the full tutorial
$connect = mysqli_connect("localhost", "root", "", "testing");
$query = "SELECT * FROM tbl_employee ORDER BY id desc";
$result = mysqli_query($connect, $query);
然后再往下走:
<div class="container" style="width:800px;">
<h2 align="center">PHP AJAX Jquery - Load Dynamic Content in Bootstrap Popover</h2>
<h3 align="center">Employee Data</h3>
<br /><br />
<div class="table-responsive">
<table class="table table-bordered">
<tr>
<th width="20%">ID</th>
<th width="80%">Name</th>
</tr>
<?php
while($row = mysqli_fetch_array($result))
{
?>
<tr>
<td><?php echo $row["id"]; ?></td>
<td><a href="#" class="hover" id="<?php echo $row["id"]; ?>"><?php echo $row["name"]; ?></a></td>
</tr>
<?php
}
?>
</table>
</div>
</div>
答案 0 :(得分:3)
这是您在PDO中执行此查询的方法
数据库连接:
$host = 'localhost';
$db = '';
$user = '';
$pass = '';
$charset = 'utf8';
$dsn = "mysql:host={$host};dbname={$db};charset={$charset}";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $user, $pass, $opt);
注意我们在这里设置了一些额外的参数,即ATTR_EMULATE_PREPARES
,这使得PDO可以使用适当的预处理语句而不是模拟语句,这使得它更安全。 (如果我们没有这样做,它基本上就像字符串连接一样安全)注意,在你写的查询中,这实际上并不重要,因为没有什么可以准备,但它将是稍后当你有一些需要传递数据的语句时有用。
<强>查询:强>
$stmt = $pdo->query("SELECT * FROM tbl_employee ORDER BY id desc")->fetchAll();
<强>循环:强>
if(!empty($stmt)) {
foreach($stmt as $row) {
?>
<tr>
<td><?php echo $row["id"]; ?></td>
<td><a href="#" class="hover" id="<?php echo $row["id"]; ?>"><?php echo $row["name"]; ?></a></td>
</tr>
<?
}
} else {
//show error, no results
}
我想提一下MySQLi_*
界面并不是真的&#34;旧&#34;,它到目前为止还没有被弃用或未使用过。我更喜欢PDO而不是MySQLi,因为它对我来说似乎更容易,但两种语法都是完全有效和支持的。当您未使用任何接口Prepared Statements时,会出现问题。