pdate와 mdate 사이의 날짜를 계산하는 DATEDIFF를 만들려고합니다. ddate로 표시합니다. 오류가 발생했습니다. "오류 : SQL 구문에 오류가 있습니다. 사용자의 MySQL 서버 버전과 일치하는 설명서에서 올바른 구문을 사용하여 SELECT 문의처를 확인하십시오. DATEDIFF (2014-07-22,2014-07-22) 'at line 2'. 내 코드에서 정확히 무엇이 잘못 되었습니까?DATEDIFF에서 SQL 오류 수신
<?php $con=mysqli_connect("localhost","xxx","xxx","xxxx"); // Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$pdate = mysqli_real_escape_string($con, $_POST['pdate']);
$mdate = mysqli_real_escape_string($con, $_POST['mdate']);
$amt = mysqli_real_escape_string($con, $_POST['amt']);
$first = mysqli_real_escape_string($con, $_POST['first']);
$last = mysqli_real_escape_string($con, $_POST['last']);
$pid = mysqli_real_escape_string($con, $_POST['pid']);
$cno = mysqli_real_escape_string($con, $_POST['cno']);
$madd = mysqli_real_escape_string($con, $_POST['madd']);
$bene = mysqli_real_escape_string($con, $_POST['bene']);
$swc = mysqli_real_escape_string($con, $_POST['swc']);
$bacc = mysqli_real_escape_string($con, $_POST['bacc']);
$bank = mysqli_real_escape_string($con, $_POST['bank']);
$badd = mysqli_real_escape_string($con, $_POST['badd']);
$bno = mysqli_real_escape_string($con, $_POST['bno']);
$sql="INSERT INTO contacts (pdate, mdate, amt, first, last, pid, cno,madd, bene, swc, bacc, bank, badd, bno, ddate) VALUES ('$pdate','$mdate','$amt','$first','$last','$pid','$cno','$madd','$bene','$swc','$bacc','$bank','$badd','$bno','$ddate')";
$sql.="SELECT contacts DATEDIFF($pdate,$mdate) AS ddate";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "Client record has been added to the database!";
mysqli_close($con);
?>
'DATEDIFF' 문에서'contacts'는 무엇을하고 있습니까? 분명히 나에게 잘못 보입니다 –
사과드립니다. 그러나 저는 MySQL을 처음 접했습니다. DATEDIFF를 사용하기 전에 SELECT에 테이블 이름을 입력해야한다고 생각했습니다. 제거한 후에도 여전히 같은 오류가 발생합니다. – Alex
두 변수 사이에 차이가 있으므로 테이블과 독립적입니다. 또한 테이블에서 선택하는 경우에도 구문이 잘못되었습니다. –