2013-05-19 87 views
0

我寫了一些PHP/SQL,旨在將會話變量存儲到SQL表中。 (我遺漏了一些HTML,告訴用戶該PHP的工作。)PHP隨機打印PHP代碼內的代碼

<?php 
session_start(); 
$name = $_REQUEST["name"]; 
$type = $_REQUEST["type"]; 
$lengthnum = $_REQUEST["lengthnum"]; 
$rewardnum = $_REQUEST["rewardnum"]; 
$itemreward = $_REQUEST["itemreward"]; 

$dsn = "mysql:host=localhost;dbname=xxxxxx"; 
$username = "xxxxxxxxx"; 
$pw = "xxxxxxxx"; 
$options = array(PDO ::ATTR_ERRMODE=>PDO ::ERRMODE_EXCEPTION); 
try 
{ 
    $my_pdo = new PDO ($dsn, $username, $pw, $options); 
    $sql_stmt = "INSERT INTO xxxxxx (Name, Type, Length, Reward, Item) 
       VALUES ($name, $type, $lengthnum, $rewardnum, $itemreward)"; 
    $my_pdo->query($sql_stmt); 
} 
catch(Exception $a) 
{ 
    echo "<p>Error..." . $a->getMessage() . "</p>"; 
} 
?> 

出於某種原因,這個代碼「休息」了PHP的標籤後,「$選項=陣列(」這是輸出到HTML文件。

PDO ::ERRMODE_EXCEPTION); try { $my_pdo = new PDO ($dsn, $username, $pw, $options); $sql_stmt = "INSERT INTO simpleWFA (Name, Type, Length, Reward, Item) VALUES ($name, $type, $lengthnum, $rewardnum, $itemreward)"; $my_pdo->query($sql_stmt); } catch(Exception $a) { echo " 

Error..." . $a->getMessage() . " 
"; } ?> 

謝謝!

+0

我會說你略微濫用你應該如何編碼PDO/PHP的方式。這是完全非常規的,不符合常見做法 – samayo

+0

這是不可能的 – zerkms

+0

我有它在另一個項目中工作,使用完全相同的佈局。我如何做到「正確」的方式? –

回答

0

只是一個猜測,但我要說你的數組定義是無效的。

$options = array(PDO ::ATTR_ERRMODE=>PDO ::ERRMODE_EXCEPTION); 

應該是這樣的東西

$options = array("PDO::ATTR_ERRMODE"=>"PDO::ERRMODE_EXCEPTION"); 
+0

謝謝,但這似乎不是問題所在,將其更改爲您所擁有的並不能解決問題,並且我在成功使用此pdo數組之前。 –

+0

它可能是PDO之後的空格嗎?我已經更新了我的答案。 –

+0

不,我在發佈後立即修復了這些問題,但沒有幫助。這可能是我的IDE,PHP編碼器非常糟糕,我無法在現場服務器上測試代碼。 –