नहीं, आपने एक तैयार कथन बनाया है, फिर आपने सामान्य क्वेरी का उपयोग किया है जिसमें प्लेसहोल्डर हैं, इसलिए यह काम नहीं कर रहा है। तैयार किए गए कथन को निष्पादित करें, फिर उस तैयार किए गए कथन से परिणाम प्राप्त करें।
$query = "SELECT * FROM photos WHERE cata=? OR catb=? OR catc=?";
$conn = $db->prepare($query);
$conn->bind_param("sss", $cata, $catb, $catc);
$conn->execute();
$conn->bind_result($cata, $catb, $catc);
?>
<table border="1">
<tr>
<th>cata</th>
<th>catb</th>
<th>catc</th>
</tr>
<?php
while ($conn->fetch()) {
echo '<tr>';
echo '<td>' . $cata . '</td>';
echo '<td>' . $catb . '</td>';
echo '<td>' . $catc . '</td>';
echo '</tr>';
}
या अगर आपके पास mysqlnd
है (mysql मूल ड्राइवर / या आपके पास वह अपरिभाषित फ़ंक्शन नहीं होगा), आप get_result()
का भी उपयोग कर सकते हैं :
$query = "SELECT * FROM photos WHERE cata=? OR catb=? OR catc=?";
$conn = $db->prepare($query);
$conn->bind_param("sss", $cata, $catb, $catc);
$conn->execute();
$results = $conn->get_result(); // i like this better
?>
<table border="1">
<tr>
<th>cata</th>
<th>catb</th>
<th>catc</th>
</tr>
<?php
while ($row = $results->fetch_assoc()) {
echo '<tr>';
echo '<td>' . $row['cata'] . '</td>';
echo '<td>' . $row['catb'] . '</td>';
echo '<td>' . $row['catc'] . '</td>';
echo '</tr>';
}
?>