无法让我的PDO查询显示在另一页上
问题描述:
我一直在学习PDO。基本上我想要做的是显示一年中任何一天下班的名字。无法让我的PDO查询显示在另一页上
我创建了一个准备好的语句,它根据变量中设置的日期给出了名称。它按预期工作。
我遇到的问题是在单独的页面上显示。可以说我的网页PDO声明被称为vacationnames.php
根据不同的日期,我需要显示这4个不同的页面中的名称calendar1.php或calendar2.php等等。
这里是我的代码: vacationnames.php
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$db = new PDO($dsn, $user, $pass, $opt);
$sth = $db->prepare("
SELECT (employee.name)Name
, vacation_picks._date1 as Date
FROM employee
LEFT OUTER JOIN
vacation_picks on
employee.employee_id = vacation_picks.employee_id
WHERE vacation_picks._date1 = :day
");
这是对calendar.php网页之一
$myVariable = ('2017-1-1');
// This executes the SQL query, binding the parameter as we go.
$sth->execute(array(
':day' => $myVariable
));
// echo $myVariable;
foreach($sth as $row) {
echo $row['Name'];
}
即使把 '第一天' PHP的日历.php with vacationnames.php required_once不给我结果。如果可能的话,我宁愿在calendar.php中使用更少的代码。
感谢您的期待。
答
你可以为此使用SESSIONS。存储您提交值到会话变量,你可以在该变量的任何地方在您的网站,然后调用如果页面包含在session_start()顶部
下面是手动的链接 - http://php.net/manual/en/reserved.variables.session.php
例如
$_SESSION['name'] = $_POST['firstname'];
我希望这可以让你去
* *“我有被显示的是一个单独的页面上的问题。” - 您可以使用这个会话。但是,这听起来更像是一个超出范围的问题。 –
[有时,您可以使用预准备语句来执行准备好的查询的多次执行。如果可以执行另一个PHP实例中准备的语句,该功能将会更加有用。但是,唉 - 它不是](https://phpdelusions.net/pdo#multiexec) –
基本上,你的代码应该发出一个“Undefined variable $ sth”的错误,因为,正如你猜测的那样,无处可见$ sth可以被定义在calendar.php –