질문을 삭제하지 말아주세요.!
 
1
0
-1

안녕하세요 라라벨 공부 시작하고 있는 초보 개발자입니다.

저는 지금 SQLite를 통해서 insert문 테스트 중인데요 뭐가 잘못 된건지

자꾸 오류가 납니다. 왜 오류가 나는걸까요...??

첫번 째 오류 :
PDOException in Connection.php line 475:
SQLSTATE[HY000]: General error: 1 near "?": syntax error

두번 째 오류 :
QueryException in Connection.php line 769:
SQLSTATE[HY000]: General error: 1 near "?": syntax error (SQL: insert into users (name, user_id, user_pw, user_email, user_phone, signup_date) values ('진테스트', 'jintest', 'asdf1234', 'jintest@example.com', '010-5678-9012', datetime('now', 'localtime')))

제 함수는 아래와 같습니다.

$query = DB::insert('insert into ? (name, user_id, user_pw, user_email, user_phone, signup_date) values (?)',
["users", "'진테스트', 'jintest', 'asdf1234', 'jintest@example.com', '010-5678-9012', datetime('now', 'localtime')"]);
$result = array();

print_r($query);
exit;

return view('join');

    CommentAdd your comment...

    3 answers

    1.  
      2
      1
      0

      라라벨 쿼리 빌더 내용을 다시 읽어보시면 해결할 수 있을 것 같습니다.

      기본적으로 insert 시 아래와 같이 사용합니다.

      DB::table('users')→insert(

       [ ['email' => 'taylor@example.com', 'votes' => 0],

      ['email' => 'dayle@example.com', 'votes' => 0]

      ]);

      메뉴얼 링크 같이 첨부해드리겠습니다.

      https://laravel.kr/docs/5.3/queries#inserts

       

      좀더 나아가 Eloquent ORM을 사용하시는것을 권장해드립니다.

      1. dtg

        한 가지 여쭤보고 싶은게 있습니다.

        DB::table('users')→insert(
        [ ['email' => 'taylor@example.com', 'votes' => 0],
        ['email' => 'dayle@example.com', 'votes' => 0]
        ]);

         

        이 내용에서 만약 테이블명을 변수로 넣고 유동적으로 변경할 수 있게 하려면

        어떻게 해야할까요??

      2. Ama

        'users' 부분을 변수로 넣어주면 되겠죠?

        그렇게 쓰시려는 이유가 따로있나요?

      3. dtg

        DB 쿼리 관련 함수들끼리 모아서 클래스파일로 사용하려고 합니다.

      CommentAdd your comment...
    2.  
      1
      0
      -1

      Eloquent ORM 은 제 블로그의 https://www.lesstif.com/display/laravelprog/Eloquent+ORM 를 참고하세요.

      (쉽게 배우는 라라벨 5 프로그래밍의 온라인 초고입니다.)

        CommentAdd your comment...
      1.  
        1
        0
        -1

        내용에는 5.3 버전이고 저는 5.5 버전인데 5.3 버전으로 해야하나요??

        1. Ama

          현재 라라벨 최상버전은 5.3으로 알고있는데요

          php artisan --version 혹은

          composer.json 에서 "laravel/framework" 에서 버전 확인 해보시면 될 것 같습니다.

        2. dtg

          아 잘못 생각하고 있었네요..감사합니다 ㅎㅎ

           

          근데 Eloquent ORM을 실습해보긴 했는데 정확히 이해가 잘 안됩니다.

          엘로퀀트 ORM을 하는 게 artisan tinker를 통해 입력하는건가요??

          그리고 엘로퀀트를 사용하면 어떤 점이 좋은건가요??

        3. Ama

          https://www.laravel.co.kr/posts/98 을 참고하셔서 공부하시면 좋을것같습니다.

        4. dtg

          감사합니다!

        CommentAdd your comment...