>  기사  >  백엔드 개발  >  PHP 경고: mysql_num_rows()에서는 매개변수 솔루션이 필요합니다.

PHP 경고: mysql_num_rows()에서는 매개변수 솔루션이 필요합니다.

PHPz
PHPz원래의
2023-06-24 22:07:431582검색

PHP는 WordPress와 같은 많은 웹 애플리케이션이 MySQL 데이터베이스를 사용하여 데이터를 저장하고 검색하는 웹 개발에 널리 사용되는 오픈 소스 스크립팅 언어입니다. 그러나 mysql_num_rows() 함수를 사용할 때 다음과 같은 경고가 나타나는 경우가 있습니다.

PHP 경고: mysql_num_rows()는 매개변수 1이 리소스, 부울 제공...

이 기사에서 이 문제에 대해 논의할 것입니다. 그리고 그것을 고치는 방법.

mysql_num_rows() 함수가 무엇인가요?

mysql_num_rows() 함수는 MySQL 쿼리에서 검색된 행 수를 가져오는 데 사용됩니다. 결과 집합 리소스를 매개 변수로 받아들이고 오류가 발생하면 행 수를 반환하거나 false를 반환합니다. 예는 다음과 같습니다.

$result = mysql_query("SELECT * FROM mytable");
$num_rows = mysql_num_rows($result);
echo "Rows: ".$num_rows;

이것은 다음에서 검색된 결과를 반환합니다. mytable 테이블에 도달한 행 수입니다. 그러나 결과 집합이 리소스가 아닌 경우 다음과 같은 경고가 표시됩니다.

PHP 경고: mysql_num_rows()는 매개변수 1이 리소스, 부울이 제공될 것으로 예상합니다...

"부울 지정" 경고가 나타나는 이유는 무엇입니까?

이 문제는 일반적으로 SQL 쿼리 실패로 인해 발생합니다. mysql_query() 함수를 사용할 때, 쿼리가 실패했음을 나타내는 false를 반환할 수 있습니다. 이 결과를 mysql_num_rows() 함수에 매개 변수로 전달하면 예상되는 결과 집합 리소스 대신 부울 값으로 해석됩니다. 따라서 "PHP 경고: mysql_num_rows()는 매개변수 1이 리소스, 부울이 ...에 제공될 것으로 예상합니다."라는 경고가 콘솔에 나타납니다.

"부울 지정" 경고를 해결하는 방법은 무엇입니까?

이 문제를 해결하려면 mysql_num_rows() 함수를 사용하기 전에 SQL 쿼리가 성공했는지 확인해야 합니다. mysql_query() 함수의 결과는 다음과 같이 확인할 수 있습니다:

$result = mysql_query("SELECT * FROM mytable");
if($result){
$num_rows = mysql_num_rows($result);
echo "행: " .$num_rows;
}

이것은 쿼리가 성공적으로 실행된 후에만 mysql_num_rows() 함수가 사용되도록 보장합니다.

또 다른 방법은 MySQLi 확장 또는 PDO(PHP 데이터 개체)를 사용하여 MySQL 데이터베이스에 연결하고 쿼리하는 것입니다. MySQLi 확장은 MySQL 데이터베이스에 액세스하는 향상된 방법을 제공하는 반면, PDO는 다양한 유형의 데이터베이스(예: MySQL, PostgreSQL, SQLite)를 연결하고 쿼리하는 데 사용할 수 있습니다.

다음은 MySQLi를 사용한 예입니다:

$conn = mysqli_connect("localhost","username","password","dbname");
if (!$conn) {
die("연결할 수 없습니다: " .mysqli_error($conn));
}

$result = mysqli_query($conn,"SELECT * FROM mytable");
if($result){
$num_rows = mysqli_num_rows($result);
echo "행: ".$num_rows;
}

또한 PDO는 사용하기 쉽고 안전한 데이터베이스 액세스 방법도 제공합니다.

$conn = new PDO("mysql:host=localhost;dbname=myDB","username" ,"password");
$result = $conn->query("SELECT * FROM mytable");
if($result){
$num_rows = $result->rowCount();
echo "행: mysql_num_rows() 함수를 사용할 때 ".$num_rows;
}

Summary

"boolean done" 경고는 일반적으로 SQL 쿼리 실패로 인해 발생합니다. 이 문제를 해결하려면 mysql_num_rows() 함수를 사용하기 전에 쿼리가 성공했는지 확인하거나 MySQLi 확장 또는 PDO와 같은 다른 MySQL 데이터베이스 액세스 방법을 사용해야 합니다.

위 내용은 PHP 경고: mysql_num_rows()에서는 매개변수 솔루션이 필요합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.