2017-10-04 5 views
2
var name = req.body.name; 
db.any('alter table "houseList" add $1 text', [name]) 

나는 nodejs에 위의 코드를 사용하여 Heroku가에 데이터베이스 호스트에 새 열을 추가하려고하지만 난이 오류가 점점 계속 :PG-약속 만드는 열 오류

error: syntax error at or near "'haha'"

'하하를 '는 이름 안에있는 가치이며, 누군가는 무엇이 잘못 됐는지 알 수 있습니까?

답변

1

일반 문자열 변수와 같이 열 이름에 잘못된 이스케이프를 사용하고 있습니다.

모든 스키마/테이블/열 이름을 SQL 이름이라고하며, ""을 사용하여 이스케이프해야합니다.

pg-promise 내에는 :name : 또는 ~ 수정자를 사용하여 SQL Names을 지원해야한다는 의미입니다.

db.any('alter table "houseList" add $1:name text', [name]) 

나 또한

db.any('alter table "houseList" add $1~ text', [name]) 

, 당신은, 간단한 이름을 사용하여 어떠한 공백없이 수도를 즉 없는지 당신이 확인하는 경우에, 당신이 직접 이름을 사용할 수는 이스케이프은을 사용하여 의미 Raw Text, 변경자를 통해 :raw 또는 ^. 하지만 일반적으로 추천하지 않습니다. 즉, 이름을 이스케이프하는 것이 더 안전하다고 권장됩니다.)

+0

정말 고마워요. –

+0

@ JienanTang이 귀하의 질문에 답변 한 경우, 투표 카운터에 대한 체크 표시를 클릭하여 동의하십시오. –