2014-07-11 27 views
2

쿼리 및 PHP에 익숙해 져서 이해가 안됩니다.SQL/PHP 다중 쿼리

데이터베이스에서 사용자의 ID를 가져와 다른 사용자 friendreq 열과 같게 설정하려고합니다.

제대로 탈출하지 않을까 걱정하지 마십시오. 연습 할 수있는 유일한 테스트입니다! 감사합니다! (I가 무엇인지 이스케이프 확실하지 않습니다 만, 나는 내 연구를 할거야!)

$usernameID = "SELECT Id FROM Users WHERE Username = '$username'"; 
$sql = "UPDATE Users SET FriendReq = $usernameID WHERE Username = '$usernamebeingreq'"; 

$result = mysqli_multi_query($con, $usernameID, $sql); 

if(!$result) 
{ 
    echo 'Failed'; 
} 
else 
{ 
    echo 'Friend added!'; 
} 
+0

당신은 탈출 할뿐만 아니라해야 사용자 삽입 부분이 아니라 [prepared statements] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)를 사용하십시오. PHP에서 쿼리를 처리하는 가장 안전한 방법입니다. – Padarom

+0

대단히 감사합니다. 다중 쿼리에 대한 조언을 살펴 보겠습니다. – user3828087

+2

방금 ​​왜이 multi_query 문제로 귀찮게 연습하고 계시다면? 쿼리를 하나씩 수행하십시오. – quickshiftin

답변

3

PHP referencemysqli_multi_query 당신의 두 쿼리에 따르면 세미콜론와 연결해야합니다. 각 쿼리를 자체 매개 변수로 전달합니다.

를 사용하는 대신 다음

$result = mysqli_multi_query($con, $usernameID . "; " . $sql); 

이 그 다음이다, 그래서 당신의 두 개의 질의을 연결합니다 : 쿼리의

SELECT Id FROM Users WHERE Username = '$username'; UPDATE Users SET FriendReq = $usernameID WHERE Username = '$usernamebeingreq' 
+0

아름답게 일했습니다! 모든 팁을 가져 주셔서 감사합니다, 나는 그들을 연결하려고했지만 중간에 세미 콜린없이! 감사!! – user3828087

+0

어떻게 이것이 가능할 수 있습니까? ! –

+0

@LorenzMeyer 왜 안되나요? 이것은 PHP 레퍼런스가 우리에게 말한 것입니다. – Padarom