2013-01-10 116 views
0

我一直在腳本PHP,HTML和SQL一段時間,並認爲我的技能是平均的。我想開發強化我的PHP與PDO技能,尤其是防止SQL注入。PHP PDO - PHP解析錯誤:語法錯誤,意外T_ENCAPSED_AND_WHITESPACE

我已閱讀並遵循了大量的實例,但似乎總是拋出

PHP Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE" error

,我感到困惑,是什麼問題。錯誤發生在第23行,它應該執行。

我知道表單域很好,因爲這是沒有PDO的工作。由於轉換,我不斷收到上述錯誤。 [$var1-$var6針對示例進行了更改]。

<?php if(isset($_POST['submit'])) { 

// connect to db include '/xxx/xxx/pdo-db-conn.php'; 

// check db connection 

$subject = $_POST['subject']; 
$email = $_POST['email']; 
$name = $_POST['name']; 
$date = $_POST['date']; 
$var1 = $_POST['var1']; 
$var2 = $_POST['var2']; 
$var3 = $_POST['var3']; 
$var4 = $_POST['var4']; 
$var5 = $_POST['var5']; 
$var6 = $_POST['var6']; 
$sqli = "INSERT INTO mytable (subject,email,name,date,var1,var2,var3,var4,var5,var6) VALUES (:subject,:email,:name,:date,:var1,:var2,:var3,:var4,:var5,:var6)"; 
$sql = $dbConn->prepare("$sqli"); 
$sql->execute(array(':subject' => $subject, ':email' => $email, ':name' => $name, ':date' => $date, ':var1' => $var1, ':var2' => $var2, ':var3' => $var3, ':var4' => $var4, ':var5' => $var5, ':var6' => $var6)'); 
+0

即使這個網站的語法高亮顯示了錯誤所在..找一個適當的IDE,所以你不必問您的解析錯誤是。 –

+0

會這樣做,謝謝你的建議。 – Nikita

+0

@ N.B。我目前正在使用vim for Linux,對Linux CLI的良好IDE有何看法? – Nikita

回答

0

這裏的問題是

INSERT INTO mytable >(subject,email,name,date,var1, 
        ^

刪除此>

,並也由此在最後

$var6)'); 
    ^
+0

這會導致SQL錯誤,而不是PHP錯誤。他的腳本中有無效的PHP。 – Prisoner

+0

對不起,這是我的一個錯字,「>」不在我原來的PHP中。更正了代碼塊。 就是這樣,除此之外。 :) – Nikita

+2

@NikitaRuffRuff移除'');'並添加');',你的PHP是無效的(正如你從StackOverflows代碼高亮顯示在行結尾處看到的那樣) – Prisoner

4

刪除'你的結尾有一個'陣列。 格式化您的代碼會幫助你看到這樣的錯誤了:)

$sqli = "INSERT INTO mytable (subject,email,name,date,var1, var2, var3, var4, var5, var6) VALUES (:subject,:email,:name,:date,:var1,:var2,:var3,:var4,:var5,:var6)"; 

$sql = $dbConn->prepare("$sqli"); 
$sql->execute(array(
    ':subject' => $subject, 
    ':email' => $email, 
    ':name' => $name, 
    ':date' => $date, 
    ':var1' => $var1, 
    ':var2' => $var2, 
    ':var3' => $var3, 
    ':var4' => $var4, 
    ':var5' => $var5, 
    ':var6' => $var6 
)); 
+0

非常感謝! :) – Nikita

相關問題