2013-07-20 3 views
-1

데이터베이스의 모든 것을 json 형식으로 반환하기위한 PHP 스크립트를 작성했습니다. 다음 코드는이 오류를 내게 제공합니다.mysql_fetch_assoc()은 매개 변수 1을 기대합니다.

<?php 

require 'testconnect.php'; 

$sql = "SELECT * FROM 'userCredentials'"; 

$query = mysql_query($sql); 

if($query == false){ 
    echo mysql_error(); 
echo 'failed query connect'; 

} 
echo 'new success'; 

while($row = mysql_fetch_assoc($query)) { 

    echo json_encode($row); 

} 

?> 

이 코드에 어떤 문제가 여기

You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near ''userCredentials'' at line 1 

mysql_fetch_assoc() expects parameter 1 to be resource, boolean given 

코드인가? 내가 놓친 게 있니?

추신 : 나는 PHP 프로그래머가 아닙니다. 이 코드를 내 Java 코드에서 사용하기 위해이 스크립트를 작성했습니다. 감사는

+1

만 문자열, 테이블 이름은/행 – samayo

답변

2

이것은 아마도 당신이 문자열을 상징하는 따옴표를 사용하여 사실에서 발생, 다시 사용한다

열 이름,

$sql = "SELECT * FROM 'userCredentials'"; 

될해야 테이블 이름을 식별하는 데 틱;

$sql = "SELECT * FROM `userCredentials`"; 
+0

는 어떻게 반환 된 JSON을 둘러싸 수 역 따옴표 (')로 묶 연결된해야 틱 주 json 개체의 개체? –

2

실제 오류 메시지가 SELECT * FROM userCredentials에게 필요한 테이블 주위에 작은 따옴표를 읽을하기 위해 SQL 쿼리를 수정해야 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''userCredentials'' at line 1

입니다.

다른 말처럼 Backticks는 테이블 이름이나 mySQL에 의해 잘못 해석 될 수있는 문자열을 묶는 올바른 방법입니다.

+0

마지막 단락의 경우 +1입니다. 그것은 뒤로 틱없이 할 수 있지만 사용자가 명명에 조심하지 않으면 또 다른 문제가 발생할 수 있습니다 :) – Fallen

0

대신에 다시 사용할 수있는 테이블 이름 arround를 작은 따옴표를 제거는

$sql = "SELECT * FROM `userCredentials`"; 
관련 문제