[mariadb] SQLSTATE [42000] : 구문 오류 또는 액세스 위반 : 1064

DONNIE·2023년 1월 5일
0

db

목록 보기
2/2

문제

  • API요청시에 end-point의 문제가 없음에도 에러를 뱉고 새로고침됨
  • route의 try문에서 console찍힘
  • body도 넘어옴
  • front catch에서 alert로 err출력하여 세로고침 막고 에러 확인
  • sql에러
  • 복붙임
  • 그렇다면 예약어를 썼을 가능성 ? ㅇㅇ 이거였음
  • 7개 칼럼명중 무려.3개가 예약어 ㅋㄷㅋㄷ
  • 칼럼명 변경 후 성공

POST 요청 front code

  • front/Comonents/Comments.js
    const onAddComment=(e)=>{
        let reply = {
            bid:paramId,
            cgroup: 3, // 대댓글일시 parent의 group no,아닐시 maxCgroup,현재 하드코딩
            ref:3, // 현재 하드코딩
            order:1, //현재 하드코딩
            cdepth: 1, // 본댓글 1, 대댓글2, 현재 하드코딩
            cwriter: user.id,
            ccontent: commentValue,
        }
        fetch(process.env.REACT_APP_SERVER_ADDRESS+process.env.REACT_APP_ADD_COMMENT, {
            method:'POST',
            mode:'cors',
            headers:{
                'Content-type' : 'application/json',
                'Access-Control-Allow-Origin':'*',
                // 'Authorization':'Bearer ' + user.token,
            },
            body: JSON.stringify(reply)
        })
        .then((res)=>{
            if(res.ok) {
                setLists({
                    ...lists,
                    reply
                })
            }else {
                alert('댓글 작성이 실패하였습니다.')
                return false;
            }
        })
        .catch((err)=>{console.log(err)})
    }

POST 처리 api code

  • backend/routes/posts.js
router.post('/comment/add',
    async (req,res,next) => {
        try{
            console.log('try',req.body.bid)
            
            let sql = 'insert into comments (bid,cgroup,cref,corder,cdepth,replier,content) values (?,?,?,?,?,?,?)';
           // 기존코드 let sql = 'insert into comments (bid,cgroup,ref,order,depth,replier,content) values (?,?,?,?,?,?,?)';
           
            let params = [req.body.bid,req.body.cgroup, req.body.ref,req.body.order, req.body.cdepth, req.body.cwriter, req.body.ccontent]
            maria.query(sql,params,function(err,rows,fields) {
                if(err) {
                    console.log(err)
                    return false
                }else {
                    res.send({
                        code:200,
                        msg:'SUCCESS'
                    })
                }
            })
        }catch{
            console.log('catch')
            res.send({
                code:400,
                msg:'FAIL'
            })
        }
    }
)

예약어 확인하기

profile
후론트엔드 개발자

1개의 댓글

comment-user-thumbnail
2023년 1월 5일

소개 후론트엔드인데 디비하는거 열받네

답글 달기