2013-07-17 3 views
-2

내 테이블에 어떤 값을 삽입하기 위해 노력하고있어,하지만 난 다음 공지가 계속에 삽입 :PHP : 오류 "공지 사항 문자열 변환에 배열"SQL

Notice: Array to string conversion in C:\Program Files\wamp\www\process_invitation.php on line 10

라인 10입니다 다음 코드에 삽입 라인 :

if ((isset($_POST['inviter'], $_POST['opponent'])) && ($_POST['inviter'] != '' && $_POST['opponent'] != '')) { 
    $inviter = $_POST['inviter']; 
    $opponent = $_POST['opponent']; 
    $now = time(); 
    if ($mysqli->query("INSERT INTO invitations (inviter_user_id, invited_user_id, time) VALUES ('$inviter','$opponent','$now')")) { 
     return; 
    } 
} 
+0

초보자 및 상대방은 어떤 종류입니까? – StephenTG

+1

mysqli를 실행하기 전에 쿼리를 문자열에 넣고 에코한다. 그것은 무엇을 보여줍니까? – aynber

+2

http://xkcd.com/327/ – GordonM

답변

2

당신이 $ 초대하고 그들이 무엇 데이터 타입 볼 $ 상대를 var_dumping 시도? 그냥 (문자열)로 캐스팅 해보세요. mysqli와 함께 매개 변수화 된 쿼리를 사용하는 것도 좋은 생각이다. SQL INSERT를 사용하면 스스로를 SQL 인젝션에 개방 할 수 있습니다.

+0

두 번째 매개 변수가 실제로'배열'이므로 변경하려고합니다. '매개 변수화 된 질의'에 관해서 명시 해 주시겠습니까? 뭐야? 감사합니다 – SagiLow

+2

@ SagiLow 이것을 시도하십시오 : http://php.net/manual/en/mysqli.quickstart.prepared-statements.php – euantorano

+0

고마워요 .... – SagiLow

2

인쇄 변수의 출력은 문제가 어디 있는지 알 수 & :

print_r($inviter); 
print_r($opponent); 

는 mysql을 삽입하기 전에 배열에서 값을 추출해야합니다.

관련 문제