2016-02-27 2 views
1

Этот код не работает. Я пытался перейти от традиционных запросов mysqli к подготовленным операциям, но на самом деле ничего не случилось с этим.Sprintf, fetch, from Подготовлено заявление не работает

Некоторая помощь?

<?php 
include_once("config.inc.php"); // DataBase connection. 
$collection = '100'; 
$results = $mysqli_conn->prepare("SELECT p.ID, p.Reference, p.Collection, p.Name, i.ImageOne FROM p INNER JOIN i ON p.Reference=i.Reference WHERE p.Collection=?"); 
if ($results === FALSE) { 
    trigger_error($mysqli_conn->mysqli->error, E_USER_ERROR); 
} 
$results->bind_param("s", $collection); 
$results->bind_result($ID, $Reference, $Collection, $Name, $ImageOne); 
$results->execute(); 
echo '<div class="scroll-pane">'; 
while ($results->fetch()) { 
$body = ' 
<div class="product"> 
    <a href="/product.php?id=%s"> 
     <div> 
      <div> 
       <p class="txt">%s</p> 
      </div> 
      <div style="height:8em;margin:0 auto;"> 
       <img src="%s" style="width:100%;margin:0 auto;"> 
      </div> 
     </div> 
    </a> 
</div> 
'; 
sprintf($body, $ID, $Name, $ImageOne); 
} 
echo '</div>'; 
$results->free_result(); 
$results->close(); 
+0

Какая ошибка вы испытываете? – cproinger

ответ

0

Попробуйте переключить операторы execute и bind_result.

$results->execute(); 
$results->bind_result($ID, $Reference, $Collection, $Name, $ImageOne); 

Перед $results->execute(); называется, нет никаких результатов для связывания с переменными.

mysqli_stmt::bind_results() Documentation

Смежные вопросы