任何人都可以解释为什么这个功能不起作用!
我的SQL表 - 类别
id| name | lft| rgt
----------------------
1 | Datorer | 0 | 16
5 | test | 4 | 6
4 | Sationär | 2 | 4
3 | Bärbar | 1 | 3
2 | typ | 3 | 15
conn.php - 这是我获得数据库连接的地方。
<?php
$db_host = "***********";
$db_username = *******";
$db_pass = "******";
$db_name = "*******";
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'");
$db = new PDO('mysql:host='.$db_host.';dbname='.$db_name,$db_username,$db_pass, $options);
?>
functions.php - 这是我的功能,我无法弄清楚是什么错误!
function getSELECT($select,$table,$value) {
include "conn.php"; // The database connection
$sql = "SELECT '$select' FROM '$table' ORDER BY '$value'";
$sth = $db->prepare($sql);
$sth->execute();
$r = $sth->fetch(PDO::FETCH_ASSOC);
if (!isset($r)) {
trigger_error('PDO generic ERROR: No pdo query found', E_USER_ERROR);
}else{
return $r;
}
}
test.php - 在这里我调用我的函数并运行while循环。但我没有从表格类别中获得任何名称。
include "conn.php";
include "functions.php";
$result = getSELECTall("categories","asc");
while ($row = $result->fetchAll(PDO::FETCH_ASSOC)) {
echo $row['name'];
}
答案 0 :(得分:0)
你不应该使用这个功能 - 这是不安全的,没有任何意义。
相反,您必须学习基本的SQL语法,始终严格遵循它。
在熟悉SQL和PDO之前,请尽量避免编写函数。 PDO本身几乎与您可能设计的任何功能一样好。
$result = $db->query("SELECT * FROM categories ORDER BY name ASC");
就是你所需要的。
毕竟,它更具可读性,而且可以按预期的方式运作,而你的功能却没有。
答案 1 :(得分:0)
表名和列名应在&#34;中引用。 `&#34; (严重重音)和不与&#34; &#39; &#34 ;. 尝试更改