2013-08-06 3 views
-1

여기 하루 종일 머리를 쓰고 있습니다. 코드에서 SQL 삽입을 막으려 고 첫 번째 경험을했기 때문에 준비된 명령문을 사용하고 결과를 루프 할 때 내 결과는 비어 있지만 모든 셀이 테이블이므로 데이터가 없습니다. 내 코드 : include_once ("../ includes/connect.php"); 데이터가 채워되지 않는 이유준비된 문으로 MySQL SELECT 쿼리가 데이터베이스에서 데이터를 루프 아웃하지 않습니다.

http://i.stack.imgur.com/A1kKg.png

어떤 아이디어 :

$query = "SELECT * FROM `boards` WHERE `team_id` = ? ORDER BY name ASC"; 
$stmt = $con->prepare($query); 
$stmt->bind_param("s", $board); 
$stmt->execute(); 



echo "<table border='1' class='table table-bordered'> 

<tr> 
<th>Name</th> 
<th>In/Out</th> 
<th>Note</th> 
</tr>"; 

while ($row = mysqli_stmt_fetch($stmt)) 

{ 
echo "<tr>"; 
echo "<td>" . $row['name'] . "</td>"; 
echo "<td>" . $row['inout'] . "</td>"; 
echo "<td>" . $row['note'] . "</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 
//for troubleshooting 
var_dump($stmt) 

그리고 여기이 어떻게 생겼는지인가? 어떤 도움이라도 대단히 감사합니다! 덕분에 !

+0

당신은 당신이 바인딩을 지정해야하는, 즉, '당신의 응답 vinodadhikary에 대한 – woofmeow

답변

0

http://php.net/manual/en/mysqli-stmt.fetch.php 설명서에 표시된 mysqli_stmt_fetch을 호출하기 전에 모든 열을 바인딩해야합니다.

mysqli_stmt_bind_result($stmt, $name, $inout, $note); 
while (mysqli_stmt_fetch($stmt)) 
{ 
    echo "<tr>"; 
    echo "<td>" . $name . "</td>"; 
    echo "<td>" . $inout . "</td>"; 
    echo "<td>" . $note . "</td>"; 
    echo "</tr>"; 
} 
+0

감사 s' : 나는 당신의 조언을하려고 할 때 나는'PHP 경고 : mysqli_stmt_bind_result을() : 바인드 변수의 수 아무튼 '받고 있어요 준비된 명령문 ' – user2655005

+0

@ user2655005'의 필드 수와 일치하면 쿼리에서 반환 할 모든 열을 바인드해야합니다. 방금 인쇄 한 값에 따라 열을 표시했습니다. – vee

+0

네가 맞았다는 점을 감안할 때 *로 인해 반환해야 할 테이블 값이 더 많았다. 고맙습니다! – user2655005

관련 문제