我已经声明了一个 PDO,但出于某种原因,脚本在声明它时停滞了。 它没有给我任何错误,只是出于某种原因而停止。我似乎无法追根究底。如果我做错了什么,请告诉我
<?php
// this function creates a PDO that can be used to connect to our mysql server
function getConnectionPDO($dbName){
if(!empty($dbName)){
$pdo = new PDO('mysql:host=localhost;port=8889;dbname='.$dbName,'root','root');
return $pdo;
}
else {
return null;
}
}
// gets login parameters
function getLogin($username,$password){
if(!empty($username) && !empty($password)){
$pass_hash1 = md5($password);
$pass_hash2 = md5($pass_hash1); // hashes the password twice
//creating connection
$pdo = getConnectionPDO('User_Data');
if($pdo != null){
$query_string = 'SELECT * FROM users WHERE username=:username AND password=:password';
$prepare = $pdo->prepare($query_string); // preparing for query
// binding parameters
$prepare->bindParam(':username', $username);
$prepare->bindParam(':password', $pass_hash2);
// testing if query passed successfully
$columns = $prepare->fetchColumn();
if($columns == 1){
return true;
}
else {
return false;
}
}
else {
return false;
}
}
}
?>
提前感谢您的帮助=)
最佳答案
您发布的代码似乎没有错误,所以它可能是任何错误。
如果您使用 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
将其第四个“选项”参数传递给构造函数,您可能会发现调试起来更容易。
这将使 PDO
在遇到错误时抛出异常。
$pdo = new PDO('mysql:host=localhost;port=8889;dbname='.$dbName,'root','root', array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
关于PHP PDO 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18553412/