JooTC

[PHP] Warning: mysqli_query() expects at least 2 parameters 해결

Warning: mysqli_query() expects at least 2 parameters 해결 방법


PHP 코드로 구성된 웹페이지에서 데이터베이스 쿼리를 실행하지 못하는 경우가 있습니다.

Warning: mysqli_query() expects at least 2 parameters, 1 given in /html/directory/path/mysite/mypage.html on line 5

 

간혹 위 에러가 보이기 전에 페이지 작업이 처리되어버려서 쿼리가 제대로 실행됬는지 확인도 못하는 경우가 있습니다.

먼저 PHP 에러 메세지가 보이도록 한 후, 해당 페이지의 특정 쿼리문에 대한 return 문으로 SQL 실행 결과에 대해 확인해 볼 필요가 있습니다.

$sql_test = mysqli_query($database_connect, "INSERT INTO DB_TABLE(COLUMN_A, COLUMN_B) VALUES('VALUE_A', 'VALUE_B');");
return mysqli_query($sql_test);

 

쿼리가 처리되지 않은 이유는 다양한 원인이 있지만, PHP 에러 메세지에서 위와 같이 나타난다면 아래 문제를 확인해 볼 필요가 있습니다.

 

위 문제에 대해 일부는 데이터베이스 서버 연결 문제로 보기도 하지만 대부분은 해당 라인의 SQL 구문 오류에 가깝습니다.

예를 들면 아래와 같습니다.

  • 올바른 경우 : mysqli_query($database_connect, “INSERT INTO DB_TABLE(COLUMN_A, COLUMN_B) VALUES(‘VALUE_A’, ‘VALUE_B’);”);

보통 마지막 부분에 괄호를 넣지 않았거나, 파라미터가 하나이거나, 컬럼과 데이터가 매치되지 않는 경우에 발생합니다.

 

아래 문제 발생 케이스를 살펴보시면 이해되실 듯 합니다.

  • 문제 발생 1 : mysqli_query(“INSERT INTO DB_TABLE(COLUMN_A, COLUMN_B) VALUES(‘VALUE_A’, ‘VALUE_B’);”);
  • 문제 발생 2 : mysqli_query($database_connect, “INSERT INTO DB_TABLE(COLUMN_A, COLUMN_B) VALUES(‘VALUE_A’, ‘VALUE_B’;”);
  • 문제 발생 3 : mysqli_query($database_connect, “INSERT INTO DB_TABLE(COLUMN_A, COLUMN_B) VALUES(‘VALUE_B’);”);

에러가 표시되는 라인 또는 근처의 문법을 확인하고 다시 시도하면 문제 없이 쿼리가 실행될 것입니다.

관련 문서 : http://php.net/manual/kr/mysqli.query.php

구독
알림
guest

0 Comments
Inline Feedbacks
모든 댓글 보기
0
이 포스트에 대한 의견을 남겨주세요!x