2014-11-08 2 views
0

여기에 SQL newb ...SQL 쿼리 용 문자열 읽기

$db_result = mysql_query("SELECT first_name FROM gamers WHERE comp_id = 'myid'"); 내가 원하는 방식으로 작동합니다.

$compid1 = 'myid'; 
$db_result = mysql_query("SELECT first_name FROM gamers WHERE comp_id = @compid1"); 

은 동일한 결과를 산출하지 않습니다.

나는 또한 $compid1과 다른 여러 가지를 시도했지만 성공하지 못했습니다.

간단한 질문을 드려 죄송합니다. 그러나 대답은 아직 나에게 나타나지 않습니다. 감사!

업데이트 : Oh yea ... 질문. WHERE 수표에 미리 저장된 변수를 사용하려면 어떻게해야합니까?

+1

없음이 작동하지 않습니다는 MySQL의 변수는 –

답변

2

@이 아닌 변수 앞에 $을 사용해야합니다. 당신이 mysql 확장 사용을 중단하는 경우

$db_result = mysql_query("SELECT first_name FROM gamers WHERE comp_id = '$compid1'"); 

그러나, 그것은 가장 좋은 것입니다 : 그것은 문자열이기 때문에 그리고 당신은 주위에 따옴표를 넣어해야합니다. PDO 또는 mysqli를 사용하고 매개 변수가있는 prepared statement를 사용하십시오. 예 : PDO에서는 다음과 같습니다.

$stmt = $conn->prepare("SELECT first_name FROM gamers WHERE comp_id = :compid"); 
$stmt->bindParam(':compid', $compid1); 
$stmt->execute(); 
+0

감사 ('@ '로 시작) 자동적으로 같은 이름의 PHP 변수로 연결되지 않습니다! PDO 버전을 실행하면 어떻게 $ db_result를 얻을 수 있습니까? – Evorlor

+2

'$ stmt-> fetch()'를 사용하여 결과를 얻습니다. PDO 문서에 모두 나와 있습니다. – Barmar

1

문자열 변수는 따옴표 안에 묶어야합니다.

$compid1 = 'myid'; 
$db_result = mysql_query("SELECT first_name FROM gamers WHERE comp_id = '$compid1'"); 
+0

감사합니다. 내가 여분을 가지고 있다면 나는 너에게 녹색 체크 표시를 줄 것이지만, Barmar는 그것에 나중에 이겼다. – Evorlor

+0

그게 전부입니다. 하나 upvote 나를 위해 충분하다 :) – cuSK