在内存数据库中使用一点 sn-p 更新示例 :)
P.S:本例中的 XSS 保护根本不需要,因为我将输入检查为布尔值。要以相反的顺序查看结果,请指定 order?desc
<?php
/* XSS-protection. */
$_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
$array = array(
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
);
function createTable($db) {
$db->exec("CREATE TABLE IF NOT EXISTS tags (id INTEGER PRIMARY KEY, tag TEXT NOT NULL UNIQUE)");
}
function insertData($db, $array) {
$db->beginTransaction();
foreach($array as $elm) {
try {
$stmt = $db->prepare("INSERT INTO tags (tag) VALUES (:tag)");
$stmt->execute(array(
":tag" => $elm
));
} catch(PDOException $e) {
/*** roll back the transaction if we fail ***/
$db->rollback();
/*** echo the sql statement and error message ***/
echo $sql . '<br />' . $e->getMessage();
}
}
$db->commit();
}
$db = new PDO('sqlite::memory:');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
//
createTable($db);
insertData($db, $array);
$order = "ASC";
if (strtoupper($_GET['order']) == "DESC") {
$order = "DESC";
}
$stmt = $db->prepare("SELECT * FROM tags ORDER BY tag $order");
$stmt->execute();
$data = array();
while($row = $stmt->fetch()) {
$data[] = array($row['tag']);
}
echo json_encode($data);
希望你明白我想要做什么
实现(如果不只是问)。任何帮助
这与想法、方法或
例子会很棒。
首先我有几个问题,你说你正在使用 PHP5。你如何检索你的数据(RDBMS)?如果没有,PHP5 有SQLite enabled by default。我认为您至少应该使用RDBMS(SQLite/etc) 来为您完成繁重的工作。
当您learn SQL 时,您不必在 PHP 中进行任何排序。我认为这个PDO tutorial 让您了解如何在安全地使用 SQL 的同时使用它。 SQL 容易受到 SQL 注入的影响,但由于 PDO 的预处理语句,您不必再担心这一点。
我有一组结果是
从多维数组中提取。
目前数组键是价格
产品,而该项目包含
另一个包含所有
产品详情。
使用ORDER BY 订购。我会使用数据表在客户端进行排序。还可以保护您在服务器(PHP)上工作。例如,您可以查看YUI2's datatable。