Обновление WAMP до php 5.5.12 остановило работу всех моих операторов подготовки SQL

0

Недавно я обновил свою версию для wamp, так что теперь она включила php 5.5.12, поскольку я хотел использовать одну из новых функций, но, к сожалению, я сделал это на полпути через проект и только что заметил, что ее большая часть моего текущего проекта была бесполезной.

Кажется, что подготовительные заявления перестали работать, но, зная мою удачу, он работает глубже, чем это. Я не изменил какой-либо код на своих страницах, поэтому я уверен, что его обновление вызвало это.

поэтому в верхней части моей страницы у меня есть следующее

$db = new mysqli('localhost', 'root', '', 'testsite');

и тогда у меня есть форма, которая запускает пару запросов, чтобы заполнить элементы формы, которые выглядят следующим образом:

    <div id="filter_container" class="fluid">

        <h3 class="fluid filter_header">
            Filter Search Results
        </h3>

        <input type="search" placeholder="Keyword..." style="width:44.95%; padding:1.5%;">

        <select  style="width:25%; padding:1.5%">
            <option value="0">Postcode / Town</option>
            <?php
            $stmt = $db->stmt_init();
            $stmt->prepare("SELECT townID,town FROM tbl_towns WHERE townID != ? ORDER BY town ASC");
            $fake = 0;
            $stmt->bind_param("i",$fake);
            $stmt->execute();
            $stmt->bind_result($townID,$town);
            while($stmt->fetch())
            {?>
                <option value="<?php echo $townID?>"><?php echo $town?></option><?php
            }
            $stmt->close()?>
        </select>

        <select style="width:25%; padding:1.5%;">
            <option value="0">Category</option>
            <?php
            $stmt = $db->stmt_init();
            $stmt->prepare("SELECT categoryID,category FROM tbl_category WHERE categoryID != ? ORDER BY category ASC");
            $fake = 0;
            $stmt->bind_param("i",$fake);
            $stmt->execute();
            $stmt->bind_result($catID,$cat);
            while($stmt->fetch())
            {?>
               <option value="<?php echo $catID?>"><?php echo $cat?></option><?php
            }
            $stmt->close()?>
        </select>
    </div>

но отметим, что он заполняется там, где он был до обновления?

есть другие переменные, которые теперь "неопределены" после обновления и вызывают ошибки, но одна вещь за раз :)

был бы признателен за любую помощь в

РЕДАКТИРОВАТЬ

ОК нашел проблему :( во время обновления мои файлы базы данных были очищены, но я создал резервные копии файлов wap и просто скопировал файлы mysql в новую папку, но похоже, что что-то пошло не так, и таблицы не были переделаны, созданный :( таким образом, не существует и, следовательно, основные проблемы, возникающие у меня! Кто-нибудь знает, какие другие файлы мне нужно скопировать inorder для извлечения моей базы данных?

Большое спасибо

  • 0
    Прекратите предполагать, что вещи всегда будут работать. По умолчанию mysqli выполняет операцию типа mysql и при ошибке возвращает логическое значение false. проверьте наличие этой ошибки: $stmt = $mysqli->prepare(...); if ($stmt === false) { die(mysqli_error($db));
  • 0
    спасибо за вашу рекомендацию, будем иметь это в виду в будущем! это не выдает никакой новой ошибки, так что думаю, это хорошо :)
Теги:
localhost
prepared-statement
wamp

2 ответа

0

OK нашла проблему :( во время обновления мои файлы базы данных были очищены, но я создал резервные копии файлов wamp и просто скопировал все файлы mysql, хотя они были необходимы в новую папку

но когда я проверил свой php myadmin, я заметил, что все мои таблицы были удалены: O, очевидно, я не скопировал все правильные файлы базы данных из старой установки

наконец, выяснил, какой файл я пропустил, и теперь, когда он был скопирован, все теперь снова работает: D

Panic Over, извлеченный урок!

спасибо за все ваши комментарии и предложения, взяли их всех на борту!

0

Вероятно, вы должны попробовать

    $sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));

Надеюсь, это поможет :) Во всяком случае, вы должны попробовать использовать драйвер PDO. Он предлагает большую гибкость :). Вы можете просто установить свой предпочтительный тип db и работать с ним.

  • 0
    где именно в запросах ОП есть цвета / калории / фрукты? «Моя машина не работает». "Вы пробовали этот банановый хлеб?"
  • 0
    спасибо за ваш вклад, Виктор, но я не могу понять это :( не могли бы вы уточнить, пожалуйста? спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню