반응형
sql 구문의 php- 오류
데이터베이스의 테이블 중 하나에 양식 데이터를 삽입하려고 합니다.삽입되는 데이터는 이름, 이메일, 현재 날짜 및 사용자의 관심사입니다.여기 암호가 있습니다.
if (isset($_POST['name'])) {
$name = $_POST['name'];
$email = $_POST['email'];
$intrests = $_POST['intrests'];
$default_intrests = array("mob","pcs","scm","oth");
$interests = "";
if (count($intrests) == 0) {
$interests = implode(",", $default_intrests);
}
else {
$interests = implode(",", $intrests);
}
$sqll="insert into subscriptions (name,email,subdate,intrests) values ($name,$email,CURRENT_DATE, $interests)";
$insert = mysqli_query($link, $sqll);
if (!$insert) {
echo mysqli_error($link);
}
}
폼 송신시에, 다음의 에러가 표시됩니다.
SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 1행의 'dsa,asdf@qwer.com,CURRENT_DATE,mob' 근처에서 사용할 올바른 구문을 확인하십시오.
더하다'
그 가치로 환산할 수 있는 것도 있습니다.string
$sqll="insert into subscriptions (name,email,subdate,intrests)
values ('$name','$email',CURRENT_DATE, '$interests')";
실제로 파라미터를 SQL에 직접 쓰는 것은 좋지 않습니다.SQL 주입을 피하고 prepared-statement를 사용하는 것이 좋습니다.
mysql_query("insert into table values('data1', 'data2' )");
// User Entered fields
// *** This is dangerous, it is subject to sql injection,
$query = "insert into subscriptions(name,email,subdate,intrests)
values ('$name','$email',CURRENT_DATE, '$interests')";
$result = mysqli_query( $link, $query);
// *** Error checking, what if !$result? eg query is broken
$row = mysqli_fetch_array($result);
if(!$row){
echo "No Row inserted";
}
else {
echo "OK";
}
PHP 변수를 사용하는 경우 mysqli_query()를 사용하지 말고 항상 다음과 같은 준비된 문장을 사용해야 합니다.
$stmt = $mysqli->prepare("insert into subscriptions name,email,subdate,intrests)
values (?,?,CURRENT_DATE, ?)");
$stmt->bind_param('sss', $class);
$stmt->execute();
$data = $stmt->get_result()->fetch_all();
현재 날짜를 변수에 저장해 보십시오.
이와 같은 것
if (isset($_POST['name'])) {
$name=$_POST['name'];
$email=$_POST['email'];
$intrests=$_POST['intrests'];
$CURRENT_DATE = date("Y-m-d");
$default_intrests=array("mob","pcs","scm","oth");
$interests="";
if(count($intrests)==0){
$interests= implode(",", $default_intrests);
}else{
$interests= implode(",", $intrests);
}
$sqll="insert into subscriptions (name,email,subdate,intrests) values ('$name','$email','CURRENT_DATE', '$interests')";
$insert= mysqli_query($link, $sqll);
if (!$insert) {
echo mysqli_error($link);
}
}
}
언급URL : https://stackoverflow.com/questions/51238608/php-error-in-sql-syntax
반응형
'programing' 카테고리의 다른 글
docker-param wordpress mysql 연결이 거부되었습니다. (0) | 2022.09.15 |
---|---|
'가 뭐죠?YTowont9'? (0) | 2022.09.15 |
목록에 있는 각 항목을 결합하기 위해 문자열로 변환하려면 어떻게 해야 합니다. (0) | 2022.09.15 |
Java에는 버퍼 오버플로우가 있습니까? (0) | 2022.09.15 |
PHP curl을 사용한HTTP 기본 인증을 사용하여 어떻게 요청합니까? (0) | 2022.09.15 |