我試圖運行不同的查詢,取決於表的結果數量。PHP PDO MySQL不輸出結果,但頁面加載的其餘部分?
我有以下,但它只輸出文本在最後,而不是'回聲'數據?
任何人都可以看到我做錯了什麼?
<?php
require 'dbconfig.php';
class User {
function checkUser($uid, $oauth_provider, $username, $email, $twitter_otoken, $twitter_otoken_secret)
{
$query = "SELECT * FROM `users` WHERE oauth_uid = '$uid' and oauth_provider = '$oauth_provider'";
$result = $DBH->query($query);
if (!empty($result)) {
echo 'user';
} else {
echo 'no user';
}
$DBH = null;
}
}
?>
Test page loads
調用類
在另一頁我打電話給我的類下面
...else {
$twitter_otoken=$_SESSION['oauth_token'];
$twitter_otoken_secret=$_SESSION['oauth_token_secret'];
$email='';
$uid = $user_info->id;
$username = $user_info->name;
$user = new User();
$userdata = $user->checkUser($uid, 'twitter', $username,$email,$twitter_otoken,$twitter_otoken_secret);
if(!empty($userdata)){
session_start();
$_SESSION['id'] = $userdata['id'];
$_SESSION['oauth_id'] = $uid;
$_SESSION['username'] = $userdata['username'];
$_SESSION['oauth_provider'] = $userdata['oauth_provider'];
header("Location: splash.php");
}
}
} else {
// Something's missing, go back to square 1
header('Location: login-twitter.php');
}
?>
配置
$host = 'localhost';
$dbname = 'dbname was here';
$user = 'access';
$pass = 'access';
try {
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo $e->getMessage();
}
?>
你甚至稱'checkUser'功能?你到目前爲止調試了什麼? – Rikesh
你沒有使用PDO的美麗。準備好的聲明!這只是讓你的系統容易受到SQL注入攻擊的另一種方式。:( –
你在哪裏創建$ DBH?你應該使用它作爲例如類繼承的類字段或者作爲單例/註冊表模式。 – Robert