2013-08-28 3 views
0

У меня есть подготовленное заявление (выберите с соединениями) в моем PHP, что, кажется, присвоение значений для всех, кроме одной из переменных:PHP/MySQL Подготовленный оператор не присваивает значение переменной?

$dbRating = "x"; 
$dbFavDate = "x"; 

if($stmt = $dbcon->prepare(" 
    SELECT i.*, u.username, r.rating, f.date_favorited 
    FROM image i 
     INNER JOIN user u ON u.uid = ? 
     LEFT JOIN rating r ON r.iid = ? AND r.uid = ? 
     LEFT JOIN favorite f ON f.iid = ? AND f.uid = ? 
    WHERE i.iid = ?")) { 
    $stmt->bind_param("iiiiii", $qImageOwner, $qImageId, $uid, $qImageId, $uid, $qImageId); 
    $stmt->execute(); 
    $stmt->bind_result($dbIid, $dbOwnerUid, $dbTitle, $dbDescription, $dbFilename, $dbCatid, $dbDateCreated, $dbDateModified, $dbOwnerUsername, $dbRating, $dbFavDate); 
    $stmt->fetch(); 
    $stmt->close(); 
} 

Я поставил этот вопрос в PHPMyAdmin непосредственно и получили обратно все ожидаемые значения , поэтому я знаю, что это не sql. Я возвращаю все значения как ожидалось , за исключением для $ dbFavDate, по какой-то причине это всегда отображается как «x» (начальное значение, которое я назначил ему перед запросом), в то время как $ dbRating, обрабатываемый таким же образом, возвращается ожидаемое значение соответствующего рейтинга. Ошибок не возникает, кажется, что переменной просто не присваивается фактическое значение, возвращаемое из запроса?

Любая помощь была бы принята с благодарностью. Thanks, TE

+0

с использованием '$ dbcon-> prepare()' без параметризации не мешает вам атаковать SQL-инъекцией! –

+0

Не знакомы - ссылка на то, как/что вы имеете в виду? Кроме того, любая идея о «потерянной» переменной значения? EDIT: да, я думаю, я знаю, о чем вы говорите - я использовал эту структуру для вставок, но не выбирал. Я изменю код, чтобы это отразить, и сообщите, разрешает ли это значение сброшенной переменной. – TwstdElf

+0

Обновлен код в исходном сообщении. Еще одна проблема - $ dbFavDate не присваивается значение ... – TwstdElf

ответ

-1

Argh! В заключение. Это не было проблемой с sql OR php. , Если оператор в JavaScript использует

if (dbFavDate = 'x') { 

вместо

if (dbFavDate == 'x') { 

(> _ <) !! Спасибо за введение, ребята.

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