WAMP 对 php 5.5.12 的更新已停止我所有的 sql prepare 语句工作


WAMP update to php 5.5.12 has stopped all my sql prepare statements from working

我最近更新了我的 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>

但是注意到正在像更新之前一样填充在哪里?

还有其他变量在更新后现在"未定义"并导致错误,但一次一件事:)

将不胜感激任何帮助来解决这个问题

编辑

好的发现问题:(在更新过程中,我的数据库文件被 OBV 擦除,但我备份了 WAP 文件并刚刚将 MySQL 文件复制到新文件夹中,但似乎出了点问题,表没有重新创建:(因此不存在,因此我遇到了主要问题!有谁知道我需要复制哪些其他文件才能检索我的数据库?

非常感谢

OK 发现了问题:(在更新期间,我的数据库文件被 OBV 擦除,但我备份了 WAMP 文件,只是将我需要的所有 MySQL 文件复制到新文件夹中

但是当我检查我的 PHP Myadmin 时,我注意到我所有的表都被删除了:O显然我没有从旧安装中复制所有正确的数据库文件

终于找到了我错过了哪个文件,现在它已被复制,现在一切都可以正常工作:D

恐慌结束,吸取教训!!

感谢您的所有意见和建议,他们都接受了!

你可能应该试试这个

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

希望有帮助:( 无论如何,您应该尝试使用 PDO 驱动程序。它提供了更大的灵活性:)。您可以设置首选的数据库类型并使用它。