【发布时间】:2018-11-13 11:28:50
【问题描述】:
我有以下代码
<?php
$host = "localhost";
$dbname = "hawkI";
$user = "root";
$password = "";
$userExist = false;
$userIP = null;
$userHasFinish = null;
$userLastPage = null;
try {
$dbh = new PDO('mysql:host='.$host.';dbname='.$dbname, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
function getIPforBDD(){
return $_SERVER['REMOTE_ADDR'];
}
function UpdateUserProfile()
{
$requete = "SELECT * FROM users WHERE ip = ".getIPforBDD();
$result = $dbh->query($requete);
if($resultat->rowCount() == 0)
exit();
foreach($result as $ligne)
{
$userIP = $ligne['ip'];
$userhasFinish = $ligne['finish'];
$userLastPage = $ligne['lastPage'];
}
}
function CheckUserPosition()
{
UpdateUserProfile();
if(!$userExist)
AddUser();
return GetUserStatus();
}
function GetUserStatus()
{
$page;
if($userHasFinish)
$page = "end.php";
else
$page = $userLastPage;
return $page;
}
function AddUser()
{
$requete = "INSERT INTO users (ip, finish, lastPage) VALUES (".getIPforBDD().", ".false.", questionnaire_initial.php)";
$result = $dbh->query($requete);
}
function SavePageInBDD($page){
$requete = "UPDATE users SET lastPage = '.$page.' WHERE ip = ".getIPforBDD();
$result = $dbh->query($requete);
}
?>
但是,我用的时候有问题
( ! ) 注意:未定义变量:C:\wamp64\www\HawkI\bdd.php 中的 dbh 在第 66 行
我第一次使用 PHP 时并没有正确理解它是如何工作的,但我尝试了
global $dbh = new PDO('mysql:host='.$host.';dbname='.$dbname, $user, $password);
那也行不通。
此外,似乎放在函数之外的值不像在 js 中那样是全局的,我怎样才能让某些东西可以从任何地方访问(比如包含该文件的文件)
谢谢
【问题讨论】:
-
将其构建为一个类,并在构造函数中添加凭据,设置属性等,或者只是在参数中注入连接对象
标签: php pdo phpmyadmin