2014-03-28 131 views
0

下面是我用來從MySQL數據庫中獲取一些數據的代碼片段,但出現錯誤。無法從我的數據庫獲取數據

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\test\..\line28 

該代碼片段如下。有什麼建議麼?

if (($_POST["status"]) === "Builder") { 
    $sql_1= "SELECT `email_address` from `buider_basic_info` where `email_address` ='$_POST[username]'"; 
    echo $sql_1; 
} 
+2

您需要對字符串 – mesutozer

+0

進行引號,您需要保護用於SQL注入攻擊的POST變量... – markdwhite

+1

始終使用參數化語句而不是字符串粘貼;當你獲得「username」的創意值時,這是要求[SQL注入攻擊](http://xkcd.com/327/)。 – chrylis

回答

0

- 您不能在表名或任何列名中使用引號。你可以使用反引號。
- 你的查詢是字符串,所以它應該在引號內。
- 使用引號的電子郵件地址,因爲它是一個字符串

試試這個:

$sql_1=" SELECT `email_address` 
    from `buider_basic_info` 
    where `email_address` = '".$_POST['username']."'"; 
+0

nt workin ...仍然是相同的錯誤。 – user3243970

0

試試這個

$sql_1= 
"SELECT `email_address` from `buider_basic_info` where 
`email_address`='". $_POST['username']."'"; 

使用backtics而不是單引號字段名稱

+0

nt workin ...仍然是相同的錯誤。 – user3243970

+0

您是否使用了backtics作爲字段名稱? – Sadikhasan

+0

是的。做到了......還是一樣的結果 – user3243970

0
$sql_1 = "SELECT email_address 
      FROM buider_basic_info 
      WHERE email_address = '".$_POST['username']."'";