我已经建立了一个充满电影的数据库,该数据库连接到一个 HTML 表单,其中的信息通过 PHP POST 移植(充当电影数据库)。
当用户输入搜索词(标题、流派、年份或分类)时,PHP 脚本 search.php 会收到信息。
这很好,但是,我的数据库中还有一个名为 times_searched 的列,其默认值为零。
我觉得最大的问题之一是我盯着这个文件太久了,现在对我来说一些简单的东西并不明显。
一般来说,我对 PHP 和 WebDev 很陌生。我尝试发出第二条语句以在 TableRow 类的 foreach 循环内执行,并尝试了不同的语法并尝试将以前的语句绑定到新语句。
class TableRows extends RecursiveIteratorIterator
{
function __construct($it)
{
parent::__construct($it, self::LEAVES_ONLY);
}
function current()
{
return "<td style='width:150px;border:1px solid black;'>" .
parent::current()."</td>";
}
function beginChildren()
{
echo "<tr>";
}
function endChildren()
{
echo "</tr>" . "\n";
}
}
function printAssocArray($stmt)
{
foreach (new TableRows(new RecursiveArrayIterator($stmt->fetchAll()))
as $k=>$v) {
echo $v;
}
}
require 'Templates/header.php';
//DB variables
$serverName = "localhost";
$userName = "root";
$password = "";
//Post variables
$title = ($_POST['title']);
$year = ($_POST['year']);
$genre = ($_POST['genre']);
$rating = ($_POST['rating']);
if (isset($_POST['submit'])) {
try {
//Create PDO object using DB variables
$conn = new PDO(
"mysql:host=$serverName;dbname=project_db", $userName, $password
);
//Set PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "<h3 class='center'>Connection Successful!</h3>";
}
目的是尝试从数据库返回请求的查询,然后在使用 TableRow 类打印之前增加 times_searched 列,这应该在每次运行查询时发生(如果刷新页面,则 times_searched 列应该增加)
这被用于完成家庭作业项目,安全性不是一个必要的因素(尽管要求使用 PDO)。
慕后森