我最近更新了我的 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 驱动程序。它提供了更大的灵活性:)。您可以设置首选的数据库类型并使用它。