2014-10-24 3 views
-1

"mysqli_num_rows() 매개 변수 1이 mysqli_result 객체가 될 것으로 기대합니다"라는 경고 메시지가 나타납니다. 데이터베이스의 내용을 표시하려고합니다. 이 경고를 제외하고는 제대로 작동하는 것 같습니다. 이 문제를 해결하기 위해 많은 방법을 시도했지만 작동하지 않는 것 같습니다. 이 경고는 문제가있는 라인이 "if (mysqli_num_rows ($ result)> 0) {",이 문제에 대해 약간의 비결을 줄 수 있기를 바랍니다. 감사.mysqli_num_rows()는 매개 변수 1이 mysqli_result, 주어진 객체를 나타낼 것을 기대합니다.

if($result->rowCount() === 0) 

PDOStatement::rowCount

답변

2

당신은 PDO

mysqli을 사용할 수 없습니다 mysqli. $ 결과가 PDO 개체가 아니기 때문에,

if ($result->num_rows > 0) 
+0

지금 그런 식으로 작동합니다 :이 시도? 맞아. 확실하지 않다. –

+0

pdo와 myqli는 서로 다른 확장 기능을 제공하기 때문에 서로 섞을 수는 없습니다. mysqli 함수를 사용하려면 mysqli 연결이 필요합니다. – meda

+0

이제 "파일을 업로드하지 않았습니다."라는 오류 메시지가 표시됩니다. echo 명령문의 내용보다는 echo. – joedm

0

당신이 개체 및 절차 스타일을 혼합하는 것 같은데 :이 작업을 수행 PDO의 행을 계산하려면

<?php 
$sql = "SELECT `id`, `name`, `type`, `size`, `url`, `owner`, `created` FROM `files`"; 
$result = $db->query($sql); 
if($result) { 
    if(mysqli_num_rows($result)>0) { 
     echo "You have not uploaded any files."; 
    } else { 
     echo " <table width='100%'>"; 
     echo " 
    <tr> 
     <td>Name</td> 
     <td>Type</td> 
     <td>Size</td> 
     <td>URL</td> 
     <td>Owner</td> 
     <td>Created</td> 
     <td></td> 
    </tr>"; 
     while($row = $result->fetch(PDO::FETCH_ASSOC)) { 
      echo " 
    <tr> 
     <td>{$row['name']}</td> 
     <td>{$row['type']}</td> 
     <td>{$row['size']}</td> 
     <td>{$row['url']}</td> 
     <td>{$row['owner']}</td> 
     <td>{$row['created']}</td> 
     <td><a href='file?id={$row['id']}'>Download</a></td> 
    </tr>"; 
     } 
     echo " 
    </table> 
"; 
    } 
} 
?> 
+0

안녕하세요, 이제 정의되지 않은 속성 : PDOStatement :: $ num_rows가 표시됩니다. – joedm

+0

좋아요, PDO를 알지 못했습니다. mysqli와 PDO를 함께 사용할 수 없다. PDO 솔루션에 대한 다른 해답을보십시오. – JonasB

0

당신은 또한 선택 문에서 fetchColumn을 사용할 수 있습니다

if ($result->fetchColumn() > 0) 
+0

오류를 없애고는 있지만 더 이상 테이블을 표시하지 않습니다. "사용자가 파일을 업로드하지 않았습니다."라는 메시지가 나타납니다. echo 문보다는 echo 문입니다. – joedm

관련 문제