- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我完全是 PHP 和 MySQL 领域的新手。我正在读 Kevin Yank 的书,在做他的一个例子时,我遇到了一个奇怪的结果。我确信我遵循并正确输入了他书中写的代码,但我想知道为什么我没有得到相同的结果。我来回检查了代码并确定它是正确的,或者也许我遗漏了一些东西。
我在这里发布这个是因为我知道这里的很多内容对像我这样的初学者非常有帮助并且非常友善。任何意见都将受到高度赞赏。期待评论,以便我可以继续我的学习,因为我认为我因为这个奇怪的错误而陷入困境。
请参阅以下代码供您引用。
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Joke CMS</title>
</head>
<body>
<h1>Joke Management System</h1>
<ul>
<li><a href="jokes/">Manage Jokes</a></li>
<li><a href="authors/">Manage Authors</a></li>
<li><a href="categories/">Manage Joke Categories</a></li>
</ul>
</body>
</html>
index.php
<?php
//Display author list
include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/db.inc.php';
try {
$result = $pdo->query('SELECT id, name FROM author');
} catch (PDOException $e){
$error = 'Error fetching authors from database! ' . $e->getMessage();
include 'error.html.php';
exit();
}
if (isset($_POST['action']) and $_POST['action'] == 'Delete')
{
include $_SERVER['DOCUMENT_ROOT'] . '/includes/db.inc.php';
//Get jokes belonging to author
try {
$sql = 'SELECT id FROM joke WHERE authorid = :id';
$s = $pdo->prepare($sql);
$s->bindValue(':id', $_POST['id']);
$s->execute();
} catch (PDOException $e){
$error = 'Error fetching authors with their jokes! ' . $e->getMessage();
include 'error.html.php';
exit();
}
$result = $s->fetchAll();
//Delete joke category entries
try {
$sql = 'DELETE FROM jokecategory WHERE jokeid = :id';
$s = $pdo->prepare($sql);
//For each joke
foreach ($result as $row)
{
$jokeId = $row['id'];
$s->bindValue(':id', $jokeId);
$s->execute();
}
} catch (PDOException $e){
$error = 'Error deleting joke category! ' . $e->getMessage();
include 'error.html.php';
exit();
}
//Delete jokes belonging to author
try {
$sql = 'DELETE FROM joke WHERE authorid = :id';
$s = $pdo->prepare($sql);
$s->bindValue(':id', $_POST['id']);
$s->execute();
} catch (PDOException $e){
$error = 'Error deleting joke from a specific author! ' . $e->getMessage();
include 'error.html.php';
exit();
}
//Delete the author
try {
$sql = 'DELETE FROM author WHERE id = :id';
$s = $pdo->prepare($sql);
$s->bindValue(':id', $_POST['id']);
$s->execute();
} catch (PDOException $e){
$error = 'Error deleting the author from database! ' . $e->getMessage();
include 'error.html.php';
exit();
}
header('Location: .');
exit();
}
foreach ($result as $row){
$authors[] = array(
'id' => $row['id'],
'name' => $row['name']
);
}
include 'authors.html.php';
?>
authors.html.php
<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/helper.inc.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Manage Authors</title>
</head>
<body>
<h1>Manage Authors</h1>
<p><a href="?add">Add new author</a></p>
<ul>
<?php foreach($authors as $author): ?>
<li>
<form action="" method="post">
<div>
<?php echo htmlout($author['name']); ?>
<input type="hidden" value="<?php echo htmlout($author['id']); ?>"/>
<input type="submit" name="action" value="Edit"/>
<input type="submit" name="action" value="Delete"/>
</div>
</form>
</li>
<?php endforeach; ?>
</ul>
<p><a href="..">Return to JMS home</a></p>
</body>
</html>
所有的投入都受到高度赞赏。
最佳答案
$pdo
对象是否已正确初始化以及数据库中是否有实际记录。您可以使用 Workbench 等外部 MySQL 客户端来测试查询。您也用它来优化。只有当您对查询感到满意时,才将其放入脚本中,除非它非常简单,您可以就地正确编写。`table_names`
和 `column_names`
转义为 MySQL 合法版本,并使用 ;
结束查询。而且看起来更好。foreach
之前初始化变量 $authors = array();
。那本书应该教你这一点。var_dump()
。将 var_dump($result);
放在 $result = $pdo->query('...');
之后。还可以在 foreach
中使用 var_dump($row);
。它用于简单但有效的调试。打印变量值。htmlout()
确实存在吗?var_dump()
后您实际上看到了什么?关于php - fetchAll() 没有结果;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22141807/
我有一个关于 PDO 的问题。 有区别吗 $sql = "SELECT * FROM pages"; $pdo = $this->db->query($sql); $result = $pdo->fe
这个问题最好的标题是“如何将字典列表转换为元组列表”,除非我不能 100% 确定这是正确的。 我正在修改我在网上找到的一个抓取工具,它使用 .fetchall() 从数据库中获取数据。 cur.exe
我有以下代码: $sql = "SELECT table.field, table2.field2 FROM table, table2"; $stmt
我想知道是否有人可以帮助阐明为什么这段 PHP 代码没有进入 for 循环?在 MySQL 中,查询返回我需要的相应行,但在这个 PHP 文件中,它无法将任何内容返回到数组中,因此不执行 foreac
我不断收到错误“AttributeError:‘Cursor’对象没有属性‘fetchAll’”。我的 rowCount 是 451,所有查询都正常。 我已经研究过这个问题,大多数错误都涉及在 cur
我有一个数据库,我正在尝试查询该数据库以获取要显示给用户的信息。我用过 fetch(PDO::FETCH_ASSOC) 检索单行之前或 $row = mysql_fetch_array($result
我完全是 PHP 和 MySQL 领域的新手。我正在读 Kevin Yank 的书,在做他的一个例子时,我遇到了一个奇怪的结果。我确信我遵循并正确输入了他书中写的代码,但我想知道为什么我没有得到相同的
我正在使用 zend 框架开发一个网络应用程序,我希望我的用户能够使用 zend fetchAll 函数从其他用户那里进行搜索。但它返回完整的专栏,我只想要几个值。这是我的示例代码: $query=$
我在 PHP 中有一个函数,它使用 SELECT SQL 查询。我在这样的查询中使用占位符变量 (?)。 (此占位符用于 mysql 数据库中的表名): protected function _fet
所以,这个网站上有很多这个问题的实例。 但是它们中的大多数都混合了一堆其他的东西,比如类、大量的参数等等。 我有一些非常基本的代码,不,真的,可能是最基本的: try { $connectio
我正在使用 fluentpdo - https://github.com/lichtner/fluentpdo 我正在尝试使用此代码将表中的结果循环到 html $bxslider = $fpdo->
这个问题在这里已经有了答案: Call to a member function on a non-object [duplicate] (8 个答案) 关闭 9 年前。 我不知道为什么它会返回 C
我正在使用 Python 从数据库中选择数据。 cur.execute("Select a,b,c from tab1") print "a,b,c" print "\n" data = cur.fe
同一个查询语句: fetchAll(): 复制代码 代码如下: array(1) {  
我想用 limit 做一个 fetchAll() 吗?您知道 symfony2 的实体管理器是否可行吗? 我当前的代码(获取所有,无限制): $repository = $this->getDoctr
我有一个从两个内部连接表中选择的 sql 查询。 select 语句的执行大约需要 50 秒。但是, fetchall() 需要 788 秒,并且只获取 981 个结果。这是查询和 fetchall
我有一个 php 类,用于通过 PDO 运行 SQL 语句。该类将 FetchAll 的数据存储到公共(public)变量中的该查询中,但问题是我不知道查询是什么,所以我最终在数据操作查询(INSER
我通过 ssh 连接到远程服务器,并在那里创建了两个 python 文件作为测试:一个用于创建数据库,另一个用于从中读取数据。 创建数据库的脚本 import os import sqlite3 #
我有这段有效的代码。数据库连接在文件的前面定义,与此处显示无关。安全地假设它工作正常 - 因为它是。 :-) try { $stmt = $conn->prepare("SELECT * FR
当我尝试执行以下代码时,我一直收到一个空数组: $this->DB->prepare('SELECT * FROM Articles WHERE Author = :username AND Time
我是一名优秀的程序员,十分优秀!