我不能为我的生活找出为什么DeleteTask函数不能正常工作,当它与RetrieveTask几乎相同时;只在不同的文件中调用。
现在:
的src /控制器/ RetrieveTask:
准备PDO数据库查询,并将其传递给src/view/DisplayTask.php
,<a>
使用for循环来回显行,并使用src/controller/DeleteTask.php
元素链接到src / redir / DeleteAndReturn.php。
此文件只执行src/controller/ReturnToIndex.php
和<?php
function RetrieveTask($db)
{
$sql = 'SELECT * FROM task';
return $db->query($sql);
}
?>
。
文件代码和顺序如下:
RetrieveTask
<?php
function DisplayTask($db)
{
foreach (RetrieveTask($db) as $row)
{
echo "<li>" . $row['tsk-name'] . "<br>" . $row['tsk-desc'] . "<a id=".$row['id']." class='btn btn-danger' href='/todo/redir/DeleteAndReturn.php'>Delete</a>" . "</li>";
}
}
?>
哪个传递给DisplayTask:
/todo/home
将其传递给DisplayTask($DbHandler)
目录中的index.php。我需要做的就是调用src/controller/DeleteTask.php
其中$ DbHandler是db类的瞬间。
现在为<?php
function DeleteTask($db)
{
echo "Delete";
$sql = ' DELETE FROM task where id= 2 ';
return $db->query($sql);
}
?>
:
src/controller/ReturnToIndex.php
和<?php
function ReturnToIndex()
{
header('Location: /todo/home');
}
?>
:
redir/DeleteAndReturn.php
导致<?php
include_once('../src/model/db/DbConnect.php');
include_once('../src/controller/DeleteTask.php');
include_once('../src/controller/ReturnToIndex.php');
$DbHandler = new DbConnect();
DeleteTask($DbHandler);
$DbHandler->CloseConnection();
ReturnToIndex();
?>
onPause()
我已尝试将项ID作为查询字符串中的get参数传递。删除所有表格。手动选择id。我无法让它发挥作用。任何帮助将非常感激。我用谷歌搜索并查找了几个小时的文档。我觉得这是非常简单的事情,只是在我的脑海里。
完整代码在此处:https://github.com/liengesbor。
答案 0 :(得分:0)
正如maxim_039建议的那样,我改变了如何将变量数组传递给DB构造。不知怎的,这解决了这个问题。
function __construct()
{
- parent::__construct('mysql:host=localhost;dbname=todo;', 'root', 'alexel', array ('$opt'));
+ parent::__construct('mysql:host=localhost;dbname=todo;', 'root', 'alexel', $this->opt);
echo "Connected to Database";
}
这是数据库代码:
<?php
// Connect to the database using PDO and MySQL
class DbConnect extends PDO
{
protected $dsn = "mysql:host=localhost;dbname=todo;";
protected $dbPassword = 'alexel';
protected $dbUsrName = 'root';
protected $opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
function __construct()
{
parent::__construct('mysql:host=localhost;dbname=todo;', 'root', 'alexel', $this->opt);
echo "Connected to Database";
}
function CloseConnection()
{
$this->DbConnection = null;
}
}
?>