이 같은 SQL 쿼리에서 일부 매개 변수를 사용하려고합니다.SQL 테이블 매개 변수화가 허용되지 않습니까?
Answer_table = new MySqlParameter("@answerTable", AT);
MySqlCommand solved_q = new MySqlCommand("SELECT * FROM @answerTable WHERE UserID = @uID", c2.get_con());
solved_q.Parameters.Add(Answer_table);
solved_q.Parameters.Add(uID);
하지만 예상대로 작동하지 않습니다. 그것은 허용되지 않기 때문에 테이블 이름 (@answerTable)에 대한 매개 변수를 사용하지 않을 때 uID에 대해 작동합니까? 만약 그렇다면 다른 방법이 있습니까?
어떤 도움을 주시면 감사하겠습니다 :) 당신은 매개 변수를 사용하여 FROM
절을 지정할 수 없습니다
중복 : http://stackoverflow.com/questions/6041496/mysqlparameter-as-tablename – manji
SQL 문의 from 부분의 매개 변수는 허용되지 않습니다. 매개 변수를 사용하는 대신 문자열에 연결해야합니다. 테이블 이름이 사용자 입력과 연결되어 있으면 SQL 주입 공격으로부터 보호하기 위해 적절한 이스케이프 처리를 수행해야합니다. – JamieSee
@JamieSee 또는 [이 답변] (http://stackoverflow.com/a/6041545/119477)에서 제안 된 vimvq1987로서'@ answertable'의 값이 실행 전에 DB에 있는지 확인할 수 있습니다. –