2011-09-26 7 views
1

누군가가 여기에 무엇이 잘못되었는지를 도울 수 있기를 바랍니다. 테이블에 간단한 쿼리를 실행하려는 PHP 페이지를 여는 두 개의 필드 EMAILPASSWORD이있는 양식이 있습니다. 의미가없는 오류 메시지가 표시됩니다.
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 '@gmail.com' at line 1. '@ gmail.com'을
다음은 코드의로 끝
나는이 경우에 입력 된 이메일 주소가 않았다 PHP, MySQL 테이블 쿼리 구문 오류?

<?php 
$dbhost = 'somewhere.net'; 
$dbuser = 'someUser'; 
$dbpass = 'pass'; 

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); 

$dbname = 'medreunten_db1'; 
mysql_select_db($dbname) or die(mysql_error($conn)); 

$email = mysql_real_escape_string($_POST['email']); 

$query = "SELECT * FROM employee WHERE email = $email"; 
$result = mysql_query($query, $conn) or die (mysql_error($conn)); 
extract(mysql_fetch_assoc($result)); 


while ($row = mysql_fetch_array($result)) { 
extract($row); 
echo $row['name']; 
echo $row['surname']; 
echo $row['age']; 
} 
?> 

어떤 조언을

주시면 감사하겠습니다.

+0

의 중복 가능성 (http://stackoverflow.com/questions/7546072/simple-table-query -syntax-error) – Quentin

+0

$ query = "SELECT * FROM employee WHERE email = '$ email'"; 또는 OR $ query = "SELECT * FROM employee where email =". $ email; ' – Ehtesham

+0

예. db 연결 전에 mysql_real_escape_string을 삽입했기 때문에 더 많은 문제가 발생했다. 그 스레드에서 계속 수행하고 싶었지만, 나는 코멘트를했다고 생각하고 받아 들일 수 없다. 그래서 mods는 그것을 삭제하고 나를 슬그머니 질렀다. 그래서 나는 새로운 질문을 시작했다. – Max

답변

4

당신은 문자열 필드에 따옴표가 누락되었습니다 : 당신의 while 루프는 두 번째 행에서 시작됩니다 있도록 또한

$query = "SELECT * FROM employee WHERE email = '$email'"; 

extract(mysql_fetch_assoc($result)); 

가 데이터베이스에서 첫 번째 행을 가져옵니다.

+0

지적 해 주셔서 고마워, 둘 다 오류를 해결하고 그것은 작동합니다 :) – Max

0

SQL 문자열 내에 값을 따옴표로 묶어야합니다.

$email = mysql_real_escape_string($_POST['email']); 

$query = "SELECT * FROM employee WHERE email = '$email'"; 

($ 이메일 주변에 여분의 '' 마음)

0

귀하의 질의로 변환 :이 작동하지 않습니다

SELECT * FROM emloyee WHERE email = [email protected] 

, 당신이 따옴표로 문자열을 넣어해야합니다. 다음에 코드를 변경하고 작동합니다

$query = "SELECT * FROM employee WHERE email = '$email'"; 
0

그냥 작은 따옴표 변수 '$ 이메일'때문에 VARCHAR 유형 값과 필드. 바와 같이, Darhazer :) 썼다

0

전체 고정 코드 : [? 간단한 테이블 쿼리 구문 오류]

<?php 
$dbhost = 'somewhere.net'; 
$dbuser = 'someUser'; 
$dbpass = 'pass'; 

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); 

$dbname = 'medreunten_db1'; 
mysql_select_db($dbname) or die(mysql_error($conn)); 

$email = mysql_real_escape_string($_POST['email']); 

$query = "SELECT * FROM employee WHERE email = '$email'"; 
$result = mysql_query($query, $conn) or die (mysql_error($conn)); 
extract(mysql_fetch_assoc($result)); 


while ($row = mysql_fetch_array($result)) { 
extract($row); 
echo $row['name']; 
echo $row['surname']; 
echo $row['age']; 
} 
?>