我正在尝试使用PDO从表中检索数据,只是我似乎无法向浏览器输出任何内容,只是得到了一个纯白页。
try {
// Connect and create the PDO object
$conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
$conn->exec("SET CHARACTER SET utf8"); // Sets encoding UTF-8
$lastIndex = 2;
$sql = "SELECT * FROM directory WHERE id > :lastIndex AND user_active != '' LIMIT 20"
$sth = $conn->prepare($sql);
$sth->execute(array(':lastIndex' => $lastIndex));
$c = 1;
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
echo 'ALL STYLING ETC RESULTS HERE';
$c++;
}
$conn = null; // Disconnect
}
例。 这是您的dbc类
<?php
class dbc {
public $dbserver = 'server';
public $dbusername = 'user';
public $dbpassword = 'pass';
public $dbname = 'db';
function openDb() {
try {
$db = new PDO('mysql:host=' . $this->dbserver . ';dbname=' . $this->dbname . ';charset=utf8', '' . $this->dbusername . '', '' . $this->dbpassword . '');
} catch (PDOException $e) {
die("error, please try again");
}
return $db;
}
function getAllData($qty) {
//prepared query to prevent SQL injections
$query = "select * from TABLE where qty = ?";
$stmt = $this->openDb()->prepare($query);
$stmt->bindValue(1, $qty, PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $rows;
}
?>
您的PHP页面:
<?php
require "dbc.php";
$getList = $db->getAllData(25);
foreach ($getList as $key=> $row) {
echo $row['columnName'] .' key: '. $key;
}
问题内容: 我使用PDO和MySQL,出于某种原因,当从数据库中获取int类型的值时,PDOStatement返回的是数字的字符串表示形式,而不是数字类型的值。如何防止这种情况发生? 我注意到有一个PDO类的属性:应该可以解决这个问题,但是在尝试修改它时,它抛出一个错误,指出该属性对MySQL驱动程序无效。 查询数据库时,获取字符串而不是数字是否正常? 问题答案: 我不认为可以在PHP 5.2中完
问题内容: 我正在掌握PDO的基础知识。 但是我试图获取插入的行的ID,我使用: 我遇到的教程都是关于交易的,但是我没有使用交易! 问题答案: 您可能正在寻找lastInsertId。“返回最后插入的行或序列值的ID”。
问题内容: 阅读完SQL注入攻击后,我只是在编辑搜索脚本。我正在尝试使用PDO而不是常规的mysql连接从脚本中获得相同的功能。因此,我一直在阅读有关PDO的其他文章,但不确定。这两个脚本会提供相同的功能吗? 使用PDO: 使用常规mysql: 我继续使用常规示例 从数据库创建匹配结果数组。我该如何使用PDO? 问题答案: 看一下方法。您也可以在迭代器模式中使用。 来自PHP文档的的代码示例: 结
问题内容: 这是我到目前为止阅读的内容: 由于MySQL的本机准备绕过了查询缓存,因此PDO的准备仿真在性能上更好。 MySQL的本机准备更好地提高了安全性(防止SQL注入)。 MySQL的本机准备更好地用于错误报告。 我不知道这些陈述的真实性。在选择MySQL接口时,我最大的担心是防止SQL注入。第二个问题是性能。 我的应用程序当前使用过程MySQLi(没有准备好的语句),并且大量利用了查询缓存
这是我到目前为止读到的关于的内容: PDO的prepare仿真性能更好,因为MySQL的本机prepare绕过查询缓存。 MySQL的本机prepare在安全性方面更好(防止SQL注入)。 MySQL的本机prepare更适合错误报告。 我不知道这些说法有多真实了。我在选择MySQL接口时最关心的是防止SQL注入。第二个关注点是业绩。 我的应用程序目前使用过程式MySQLi(没有准备好的语句),并
问题内容: 使用SELECT查询从INSERT使用PHP PDO时,我有一个奇怪的行为。直接在MySQL中测试查询效果很好,我插入了我的行: 但是使用PDO时,我每个用户一次插入了一行(共279行)..这是PHP: 我想念什么?我几乎可以确定这没什么,但是不能让它插入那一行。 谢谢你。 fabien。 问题答案: 并非这是可能的问题,但是您在代码的密码字段中输入了用户名。在查询中,在此插入aesk