2016-04-17 6 views
-1

PHP、PDO、SQL、およびセッション変数の詳細を調べようとしています。これを行うより良い方法があると確信していますが、私が試みていることから学ぶことを望んでいます。PDOのMSSQL文でセッション変数を使用して別の列を取得する

私は電子メールであるセッション変数を取得していて、PDOステートメントでその変数を使用して同じテーブルにあるIDを取得したいとします。以下は私がこれまで持っていたものです。ありがとう!

<?php 
require_once ('PasswordVerifySession.php'); 

$dsn = 'sqlsrv:Server=.database.windows.net;Database='; 
$uname = ''; 
$pwd = ''; 
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); 
$ticketNum = $_POST["txtTicket"]; 
$Email = $_SESSION["contEmail"] 
try { 
    $db = new PDO($dsn, $uname, $pwd, $options); 
    $q = $db->prepare("SELECT contId FROM tblContestants WHERE Email = ????); 
    $q->bindValue(':contId', $contID); 
    $q->execute(); 
    $ContId = $q->fetch(); 
    $ContId = $ContId['contId']; 
} 
catch (PDOException $e) { 
$error_message = $e->getMessage(); 
echo("<p>Database error: $error_message</p>"); 
exit(); 

} 

?>

+0

それはそれだ – RiggsFolly

+0

'catch'にだけ簡単に見てみ示唆私はページ全体を投稿しませんでした。私は編集を行います。 – RiggsFolly

+0

申し訳あり 'のsession_start()'それは –

答えて

2

私はあなたがthe manual

$Email = $_SESSION["contEmail"] 
try { 
    $db = new PDO($dsn, $uname, $pwd, $options); 
    $q = $db->prepare("SELECT contId FROM tblContestants WHERE Email = :email"); 
    $q->bindValue(':email', $Email); 
    $q->execute(); 
    $row = $q->fetch(PDO::FETCH_ASSOC); 
    $ContId = $row['contId']; 
} 
0
<?php 
require_once ('PasswordVerifySession.php'); 

$email = ...;//you obtain the email from somewhere 

try{ 
    $db = new PDO($dsn, $uname, $pwd, $options); 
    $q = $db->prepare("SELECT contId FROM tblContestants WHERE Email = :email"); 
    $q->bindValue(':email', $email); 
    $q->execute(); 
    $ContId = $q->fetch(PDO::FETCH_ASSOC); 
    $ContId = $ContId['contId']; 
} 
catch (PDOException $e) { 
    $error_message = $e->getMessage(); 
    echo("<p>Database error: $error_message</p>"); 
    exit(); 
} 

?> 
関連する問題