2011-11-25 2 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

삽입 또는 테이블에 대한 업데이트는 "edicao는"외래 키 제약 조건 "edicao_idb_fkey"DETAIL을 위반 : 키 (idb) = (자원 ID # 2)가 표 "banda"에 없습니다. –

+2

그 오류를 일으키는 다른 쿼리가 있습니다. 선택 쿼리는 외래 키 위반을 생성 할 수 없습니다. –

+0

쿼리를 실행할 때 결과는 "Resource id # 2"와 "B-7"입니다. –

1

당신은

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

Nome을 작은 따옴표로 묶으면 다음과 같은 오류가 발생합니다. SQL 쿼리의 리소스 ID # 2 오류 : ERROR : "edicao"테이블의 삽입 또는 업데이트가 외래 키 제약 조건 "edicao_idb_fkey"을 위반합니다. DETAIL : Key (idb) = (Resource id # 2)는 표 "banda"에 없습니다. –

1

당신은 당신의 $의 남자 이름 참조를 둘 필요가 귀하의 SQL 쿼리에 $의 놈을 인용 할 필요가 작은 따옴표 : SQL 쿼리에서 자원 ID 번호의 2Error : ERROR : 나는 다음과 같은 오류 얻을 작은 따옴표로 놈을 넣어

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

작은 따옴표로 놈을 넣을 때 다음 오류가 발생합니다. SQL 쿼리의 리소스 ID # 2 오류 : 오류 : "edicao"테이블의 삽입 또는 업데이트가 외래 키 제약 조건 "edicao_idb_fkey"을 위반합니다. DETAIL : Key (idb) = (Resource id # 2)는 표 "banda"에 없습니다. –

관련 문제