Ne, vytvořili jste připravený příkaz, pak jste použili normální dotaz, který má zástupné symboly, proto to nefunguje. Proveďte připravený příkaz a poté načtěte výsledek z tohoto připraveného příkazu.
$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>';
}
Nebo pokud máte mysqlnd
(nativní ovladač mysql / nebo nebudete mít tuto nedefinovanou funkci), můžete také použít 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>';
}
?>