我是PDO的新手,我在本网站的高级用户的建议下使用它。 我正在尝试使用pdo从我的表中获取数据,使用while,这样我就可以获得所有数据"有组织的"。
我的查询正在运行,但出于某种原因,我甚至无法转储它。
继承我的代码:
$sql = $conn->query("SELECT id, nivel, tipo, titulo, texto, ativa FROM account.quests_faq WHERE ativa='YES' ORDER BY nivel DESC");
while($row = $conn->fetch(PDO::FETCH_ASSOC)){
if ($tipo=='main'){
echo '<li><a href="index.php?s=quest_info&id='$row['id']'"><font color="green">Nivel '$row['nivel']' - '$row['titulo']'</font></a></li><br>';
}else{
echo '<li><a href="index.php?s=quest_info&id='$row['id']'"><font color="red">Nivel '$row['nivel']' - '$row['titulo']'</font></a></li><br>';
}
}
所以,在简历中。 我有一个表格,一些文字和一个id。 我想从中获取这些数据并回复它。
希望你能帮助我,对不起有疑问。
编辑1:
$username = 'sssss';
$password = 'sssss';
$conn = new PDO('mysql:host=xxxxxxxx;dbname=account', $username, $password);
$sql = "SELECT id, nivel, tipo, titulo, texto, ativa FROM account.quests_faq WHERE ativa='YES' ORDER BY nivel DESC";
$stmt = $conn->query($sql);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
echo '<li><a href="index.php?s=quest_info&id='.$row['id'].'"><font color="green">Nivel '.$row['nivel'].' - '.$row['titulo'].'</font></a></li><br>';
}else{
echo '<li><a href="index.php?s=quest_info&id='.$row['id'].'"><font color="red">Nivel '.$row['nivel'].' - '.$row['titulo'].'</font></a></li><br>';
}
}
答案 0 :(得分:2)
不使用,但学习 在使用之前,您必须学习 有许多关于PDO的教程(虽然它们都是糟糕的),但至少你可以从那里学习正确的语法
$(document).ready(function () {
$.ajaxSetup({
beforeSend: function () {
$('#spinner').show()
},
complete: function () {
$('#spinner').hide()
},
error: function () {
$('#spinner').hide()
}
});
});
您还必须为PDO启用错误报告。
是的,正如在另一个答案中所说,你的PHP语法也是错误的。您也应该学习它,而不是将随机代码行拼凑在一起,然后让其他人为您修复它。
从不太复杂的语法开始,从没有装饰的回显单个变量开始。并在每个帖子中提出一个问题。至于PDO部分,你已经得到了答案
答案 1 :(得分:0)
尝试使用foreach循环。循环完成后,您实际上可以在整个文件的任何位置使用$arrRows
数组!一位资深网络开发人员告诉我,这是一种更好的方法。
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($rows as $key => $arrRows){
echo $arrRows['COLLUMN_NAME_HERE'];
}
function showPost($uID){
global $numRecords, $dbConnection, $stmt;
connect(); //Run connect function (../connections/connections.php)
$sqlStr = "SELECT user_post.*, user.name, user.avatar FROM user_post JOIN user ON user_post.uID = user.uID WHERE user_post.uID = ".$uID. " ORDER BY post_time DESC";
//Run Query
try
{
$stmt = $dbConnection->query($sqlStr);
if($stmt === false)
{
die("Error executing the query: $sqlStr");
}
}
catch(PDOException $error)
{
//Display error message if applicable
echo "An error occured: ".$error->getMessage();
}
$numRecords = $stmt->rowcount();
//Close the databaase connection
$dbConnection = NULL;
}
如果您有任何疑问,请告诉我
答案 2 :(得分:-1)
您使用的是连接变量conn
而不是查询变量sql
来获取查询结果。
$sql = $conn->query("SELECT id, nivel, tipo, titulo, texto, ativa FROM account.quests_faq WHERE ativa='YES' ORDER BY nivel DESC");
while($row = $sql->fetch(PDO::FETCH_ASSOC)){
if ($tipo=='main')
echo '<li><a href="index.php?s=quest_info&id='$row['id']'"><font color="green">Nivel '$row['nivel']' - '$row['titulo']'</font></a></li><br>';
else
echo '<li><a href="index.php?s=quest_info&id='$row['id']'"><font color="red">Nivel '$row['nivel']' - '$row['titulo']'</font></a></li><br>';
}
或者您可以使用Prepared Statements
进行类似操作$sql = $conn->prepare("SELECT id, nivel, tipo, titulo, texto, ativa FROM account.quests_faq WHERE ativa='YES' ORDER BY nivel DESC");
$sql->execute();
while($row = $sql->fetch(PDO::FETCH_ASSOC)){
if ($tipo=='main')
echo '<li><a href="index.php?s=quest_info&id='$row['id']'"><font color="green">Nivel '$row['nivel']' - '$row['titulo']'</font></a></li><br>';
else
echo '<li><a href="index.php?s=quest_info&id='$row['id']'"><font color="red">Nivel '$row['nivel']' - '$row['titulo']'</font></a></li><br>';
}