2013-07-20 1 views
0

데이터베이스에 연결하고 "a"테이블을 선택하고 지난 24 시간 동안 모든 항목을 확인하는 기본 PHP 코드를 개발하려고합니다. 항목의 값 "b"가> 3 인 경우 쿼리는 해당 항목을 완료된 것으로 인식하고 요약 한 다음 완료된 항목의 번호를 표시합니다. 코드에서완료된 모든 작업을 요약 한 PHP SQL 쿼리

<?php 
$con=mysql_connect("details hidden for security"); 
if (mysql_connect_errno($con)) { 
echo "Failed to connect to MySQL: " . mysql_connect_error(); 
} 
$now = time(); 
$onedayago = $now - (24*60*60); 
$result=mysqli_query($con, "SELECT * FROM 'a' WHERE 'b' = 3 AND 'b' >= $onedayago AND 'b' <= $now"); 
if($result === FALSE) 
{ 
die(mysql_error()); 
} 
while($data=mysql_fetch_array($result)){ 
$count = $data['total']; 
} 
echo $count; 
?> 
+0

문자열 이름 주위의 작은 따옴표는 문자열 리터럴이 아닌 식별자이므로 제거하십시오. 'SELECT * FROM a b = 3 그리고 b> = $ onedayago 그리고 b <= $ now' –

+1

mysql'은 가치가 떨어집니다. mysqli 나'PDO'를 사용하려고 시도합니다 – bansi

+2

또한 mysql과 mysqli를 혼합 할 수 없습니다. . mysql을 사용하여 연결하고 mysqli를 사용하여 쿼리를 실행하면이 작업이 효과가 없을 것이다. – bansi

답변

0

, 당신은 데이터베이스에 연결 mysql_connect()를 사용하고 있지만, 그 후 쿼리를 실행 mysqli_query()을 사용하고 있습니다 :

이 내가 지금까지있는 것입니다. 이들을 섞지 마십시오.

두 번째로 식별자 주위에 작은 따옴표가 필요하지 않습니다. 그것은해야한다 :

SELECT * FROM a WHERE b = 3 AND b >= $onedayago AND b <= $now 

또한, mysql() 공식적으로 PHP 5.5로 사용되지 않으며이 mysqli() 또는 PDO로 전환하는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다.하지만 이러한 변경 사항을 적용하면 화면이 하얀색이됩니다. 감사! –