2014-01-19 2 views
-4

MySQL을 사용하여 데이터베이스에 행을 삽입하고 싶습니다. 그러나 그것은 작동하지 않았다. 나는 그것이 나에게이mysqli 인서트를 사용할 때의 경고

경고 제공 mysqli 사용하는 경우

이 :) (mysqli_query을 매개 변수 1 mysqli가 될 것으로 기대하고, 문자열은 줄에 * /misc/php/process.php에 주어진 34

mysqli_query("INSERT INTO messages (from,to,time,msg) VALUES ('$from','$to','$time','$msg')",$conn); 

무슨 뜻이며 해결할 수 있습니까?

감사합니다.

+0

에서 무엇을 볼 수있는 var_dump($conn)을 수행하여 확인할 수 있습니다 데이터베이스에 연결할 때 $conn 실패하지 않는 경우도 확인 ?

에 값을 바인딩 : //dev.mysql.com/doc/refman/5.5/en/reserved-words.html). 'from'과'to'는 backticks로 감싸줍니다. 또한, mysqli_ *를 사용하고 있기 때문에 마지막 연결이 아니라 연결이 먼저 이루어진다. –

+0

mysqli는 첫 번째 매개 변수로 데이터베이스 연결 리소스를 제공해야한다. 이것은 mysql과 다르다. mysql은 당신이 마지막으로 사용한 것을 기본값으로 사용한다. –

+0

내가 바꿀 때 경고 : mysqli_query()는 매개 변수 1이 34 행의 */misc/php/process.php에 주어진 리소스 인 mysqli 일 것을 기대한다. – user2092398

답변

1

링크 및 쿼리 항목을 뒤집어서 mysqli_query가 오류가 발생했습니다. 다음은이를 해결해야합니다.

mysqli_query($conn, "INSERT INTO messages (`from`,`to`,`time`,`msg`) VALUES ('$from','$to','$time','$msg')"); 

뿐만 아니라 당신의 열 이름 fromto 그들을

또한

이 같은 주사를 방지하기 위해 준비된 문을 사용하여 조사 할 수 있습니다에 대한 reserved words은 그래서 당신은 "to 메시지 (from INTO INSERT`역 따옴표가 필요하다 , time, msg) VALUES (?,?,?,?) "; 당신은 당신이 2 배 [예약어 (HTTP를 $conn

+2

설명으로 [내 의견] (http://stackoverflow.com/questions/21212249/warning-when-using-mysqli-insert#comment31945714_21212249)을 사용할 수 있습니다 ;-) "TRY"로는 충분하지 않습니다. –

+0

이제는 OP가 할 수 있습니다. 벌레의. 전체 코드가 보이지 않을 때 이러한 질문에 대해서는 "대답"을 게시하지 않습니다. mysqli_query()는 매개 변수 1이 mysqli가 될 것으로 예상하고, */misc/php/process.php의 34 줄에 주어진 리소스라고 가정합니다. * --- 좋은 결과입니다. –

관련 문제