2011-11-25 44 views
1

我在執行php內部的查詢時遇到問題。我有以下查詢在我的PHP代碼:PHP postrgres執行查詢的SQL

$nome = pg_escape_string($_POST['cnome']); 

$obtem_idb = "SELECT idb FROM banda WHERE nome = $nome"; 

echo("$nome"); 

$idb = pg_query($connection, $obtem_idb); 
if(!$idb){ 
     die("Error in SQL query: " . pg_last_error()); 
    } else { 
echo("o idb que vem da query é $idb"); 
} 

我打印的名字是正確的,但試圖執行查詢,我收到以下錯誤時:

Error in SQL query: ERROR: column "anthrax" does not exist LINE 1: SELECT idb FROM banda WHERE nome = Anthrax^

誰能幫助,我可以似乎沒有發現錯誤。

當我把單引號變量$諾姆它的值更改爲「資源ID#2」,我得到以下錯誤:

Error in SQL query: ERROR: insert or update on table "edicao" violates foreign key constraint "edicao_idb_fkey" DETAIL: Key (idb)=(Resource id #2) is not present in table "banda". 

回答

1

你忘了周圍的值引號:

$obtem_idb = "SELECT idb FROM banda WHERE nome = '$nome'"; 
               ^-----^--- must be quoted 
+0

當我把諾姆單引號中我得到以下錯誤:資源ID#2Error在SQL查詢:ERROR:插入或表更新「edicao」違反外鍵約束「edicao_idb_fkey」詳細信息:密鑰(idb)=(資源ID#2)在表「banda」中不存在。 –

+2

這是導致該錯誤的整個其他查詢。選擇查詢不能產生外鍵違規。 –

+0

當我執行查詢時,來自它的結果是「Resource id#2」和「B-7」,因爲它應該... –

1

需要引用$諾姆在SQL查詢

$obtem_idb = "SELECT idb FROM banda WHERE nome = '$nome'"; 
+0

當我把nome放在單引號中時,出現以下錯誤:SQL查詢中的資源ID#2錯誤:錯誤:插入或更新表「edicao」違反了外鍵約束「edicao_idb_fkey」詳細信息:密鑰(idb)=(資源ID# 2)沒有出現在表格「banda」中。 –

1

你需要把你的$諾姆參考在單引號:

$obtem_idb = "SELECT idb FROM banda WHERE nome = '$nome'"; 
+0

當我把nome放在單引號中時,出現以下錯誤:SQL查詢中的資源ID#2錯誤:錯誤:插入或更新表「edicao」違反外鍵約束「edicao_idb_fkey」詳細信息:密鑰(idb)=(資源ID# 2)沒有出現在表格「banda」中。 –