2013-10-19 3 views
0

여러 테이블의 mysql 데이터베이스가 있습니다. 하나의 테이블은 쿼리하려는 사용자로 구성되며, 특정 테이블의 이름도 가변적입니다.bash는 cmdline에서 mysql의 변수를 사용합니다.

내가 뭔가 비슷한 필요 말할 것입니다, 그러나 그것은 나에게 rigth 따옴표 얻기 힘든 시간을 제공합니다

user_id = $(mysql --user=$dba --password=$dbp $dbn -e "SELECT id FROM ${user_tbl} WHERE username = \"guest\"")

추가 : 이 좋아, 이제 초기 쿼리가 있었어야 무엇을 알고 온다 다른 질문, 어떻게 tabelename에 대한 변수를 사용하여 필드를 다시 업데이 트하십시오.

mysql --user=$dba --password=$dbp $dbn -e "UPDATE ${user_tbl} SET password=${pass} WHERE username = 'guest'"
다음과 같은 오류를 제공합니다 : 알 수없는 열 'some_encrypted_pass'를 '필드 목록'당신이 guest 문자열을 검색 할 작은 따옴표를 사용해야합니다

+0

'... WHERE username = "guest"'는 모든 SQL에서 유효하지 않습니다. 단순히 유효한 SQL을 작성하면 문제가 즉시 해결됩니다. '... 어디서 username = 'guest''입니까 – janos

답변

1
user_id=$(mysql --user=$dba --password=$dbp $dbn -e "SELECT id FROM ${user_tbl} WHERE username = 'guest'") 

에.

btw 왜이 방법을 사용하고 있습니까? 간단히 mysqli_query를 실행하고 [가져 오기 방법으로] 배열에서 값을 가져 오는 중입니까? 더 좋고 더 안전하고 신뢰할 수 있습니다.

+0

고맙습니다. 큰 따옴표의 조합, 백 슬래시가 있거나없는 작은 따옴표를 사용하여 거의 시력을 잃어 버렸습니다. – slibbe

+1

mysqli_query를 사용하면 PHP가 올바르게 사용됩니까? – slibbe

+0

네, PHP 코드를 사용하고 있다고 생각합니다. PHP를 사용하면 쉽게 이해할 수 있습니다. –