2016-01-07 3 views
-1

Я пытаюсь преобразовать некоторый код PHP для уведомлений в более подходящий подготовленный оператор. Независимо от того, что я пытаюсь, он разбивает мою страницу. Есть ли какое-нибудь тело, способное сказать мне, где ошибка?MYSQLI Подготовленное заявление White Page

EDIT Страница не заполнена полностью. Страница разрывается после этого кода.

$acctNotsQry = $redoDB->prepare('SELECT message, nDate FROM notifications WHERE uID = ? AND nSeen = "0" ORDER BY nDate DESC'); 
$acctNotsQry->bind_param('i', intval($memID)); 
$acctNotsQry->execute(); 
$acctNotsQry->store_result(); 
$acctNotsQry->bind_result($notMessage, $notnDate); 

if($acctNotsQry->num_rows == 0){ 
    echo '<li><div class="nilNots">NO NOTIFICATIONS</div></li>'; 
} else { 
    while($acctNotsQry->fetch()) { 
     ?> 
     <li><i class="fa fa-bell"></i> <?php echo htmlspecialchars_decode(stripslashes($notMessage)); ?> 
     <p><?php echo date('d M Y - h:ia', strtotime($notnDate)); ?></p></li> 
     <?php 
    } 
} 
$acctNotsQry->close(); 

ВТОРОЙ EDIT: Следующий код работает, выше нет. Это может помочь с решением:

$acctNotsQry = 'SELECT * FROM notifications WHERE uID = "'.$memID.'" AND nSeen = "0" ORDER BY nDate DESC'; 
$acctNotsRes = $redoDB->query($acctNotsQry); 
$acctNotsNum = $acctNotsRes->num_rows; 
if($acctNotsNum == 0){ 
    echo '<li><div class="nilNots">NO NOTIFICATIONS</div></li>'; 
} else { 
    while($acctNotsRow = $acctNotsRes->fetch_assoc()){ 
    $notMsg = $acctNotsRow['message']; 
    ?> 
    <li><i class="fa fa-bell"></i> <?php echo htmlspecialchars_decode(stripslashes($notMsg)); ?> 
    <p><?php echo date('d M Y - h:ia', strtotime($acctNotsRow['nDate'])); ?></p></li> 
    <?php 
    } 
} 

Я пробовал искать решение безрезультатно. Большое спасибо заранее.

+1

Белая страница может означать ошибки синтаксиса. Проконсультируйтесь по следующим ссылкам http://php.net/manual/en/mysqli.error.php и http://php.net/manual/en/function.error-reporting.php и примените это к своему коду. –

+0

Простите, это не совсем пусто. он ломается после кода выше. – NOJ75

+0

Что вы подразумеваете под «после кода»? проверьте на наличие ошибок, как я сказал. –

ответ

1

Изменить

$acctNotsQry->bind_param('i', intval($memID)); 

в

$acctNotsQry->bind_param('i', $memID); 

2-й и следующие аргументы bind_param эталонные параметры, так что вы должны использовать переменные там, а не выражение. Вам не нужно самостоятельно вызывать intval(), тип i в первом аргументе сообщает mysqli преобразовать его в целое число при отправке его в MySQL.

+0

Извините за задержку. Это исправило это. Благодарим вас за это и благодарю вас за объяснение, почему. Очень ценится. – NOJ75

+0

Должно быть сообщение об ошибке в журнале PHP о ссылке, требующей переменную. – Barmar

+0

Искал ошибку, но не может ее найти. Я использую MAMP. – NOJ75

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