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’);”);
에러가 표시되는 라인 또는 근처의 문법을 확인하고 다시 시도하면 문제 없이 쿼리가 실행될 것입니다.