我刚刚将本地项目上载到服务器,但是PDO查询在LIVE服务器中不起作用。在本地运行正常。我以为PDO可能未安装在服务器上,所以我运行了以下脚本
服务器中的PHP版本为PHP Version 5.3.3
,Linux服务器中的
<?php
if (!defined('PDO::ATTR_DRIVER_NAME')) {
echo 'PDO unavailable';
}else{
echo 'pdo is installed';
}
?>
Connection.php:
<?php
try{
$pdo = new PDO('mysql: host=localhost; dbname12', 'myusername', 'password');
}catch(PDOException $e){
exit('Database Error');
}
?>
登录:
<?php
session_start();
include_once('../includes/connection.php');
if(isset($_POST['user_name'], $_POST['user_password'])){
$username = $_POST['user_name'];
$password = md5($_POST['user_password']);
if(empty($username) or empty($password)){
$error = 'All fields are required!';
}else {
$query = $pdo->prepare("SELECT * FROM users WHERE user_name = ? AND user_password = ?");
$query->bindValue(1, $username);
$query->bindValue(2, $password);
$query->execute();
//var_dump($query);exit;
$num = $query->rowCount();
if ($num == 1) {
// User correct details let's log him in
$_SESSION['logged_in'] = true;
header('Location: dashboard.php');
exit();
} else {
$error = 'Incorrect Details';
}
}
}
?>
通过输入正确的凭据,登录名显示为incorrect details always
+为了进行调试,我绕过了登录名,进入了仪表板,在仪表板中,我们从数据库中获取文章,但没有任何内容。在数据库中,我们有很多条目。
答案 0 :(得分:0)
好吧,我不知道这是否是一个错误,但是将dbname=dbname12
添加到下面的行中,一切开始起作用!
$pdo = new PDO('mysql: host=localhost; dbname=dbname12', 'myusername', 'password');
在本地使用下面的代码可以正常工作,但是在服务器上,当我添加dbname
然后查询开始工作时。
$pdo = new PDO('mysql: host=localhost; dbname12', 'myusername', 'password');