채택완료

php 와 sql 문 질문드립니다.

2022-05-19 (목) 18:00:02 1,742

안녕하세요 php는 초짜라서 매번 qna에서 여러 고수분에게 도움받고있는터라 염치없이 이번에도 질문올립니다.

하단부분에 간단 상담폼을 만든후 작성하면 db에 담겨야되는데 db에 담기지가 않더라구요.

sql문을 만들긴 했는데 이게 맞는건지 의문이 들어서 여쭤봅니다.

Copy
<?php
require_once "./system/common/db.connect.php";

$check = new stdClass;
$check->name = $_POST["name1"];
$check->call = $_POST["call1"];
$check->type = $_POST["type1"];
$check->ip = $_SERVER["REMOTE_ADDR"];


$db = new DB();

$dload = $db->query("select count(*) from bod_cost where bod_ip = '$check->ip' and date(bod_date) = date(now())");
$dload->execute();
$check->fetch = $dload->fetch(PDO::FETCH_NUM);

if(empty($check->fetch[0])){

    $indb = $db->prepare("insert into bod_cost (
        
        bod_name,
        bod_phone,
        bod_type,
        bod_ip,
        bod_date,
        
        ) VALUES (
        
        '$check->name',
        '$check->call',
        '$check->type',
        '$check->ip',
        now(),
        
        
    )");

    $indb->execute();
    echo "신청하신 문의가 접수되었습니다.";
} else {
    echo "오늘은 더 이상 접수할 수 없습니다.";
}

unset($db);


?>

$indb->execute(); 이거때문에 ajax가 500오류가 나더라구요 이걸 지우면 넘어가는데...db를 실행시켜라 라는 거까지만 알겠는데 작동이 안되니 골치네요.. ㅜㅜ

|

답변 3개 / 댓글 3개

채택된 답변
+20 포인트
2022-05-19 (목) 18:04:36

bod_date,

->

bod_date

now(), 

->

now()

답변에 대한 댓글 1개

답변 감사합니다 말씀하신대로 하니까 바로 넘어가고 db에도 잘 들어가네요 정말 감사합니다!!
2022-05-19 (목) 18:32:33

500 에러는

https://sir.kr/qa/?wr_id=405998

이글 참고하세요.

2022-05-19 (목) 18:02:50

insert into 테이블명 set 필드명 = ? 이런식으로는 안되나요? 

답변에 대한 댓글 2개

답변 감사합니다 마르스컴퍼니님 답변주신걸로 하니까 바로 되네요 감사합니다!!
prepare statement를 쓰는 이유가
?로 된 부분은 나중에 bind()로 처리하는 데 있습니다.
이런 방식으로 작업하시는 것이 보안상 좋습니다.

답변을 작성하려면 로그인이 필요합니다.