我在开发过程中一直在XAMPP的网站上工作,现在我已将网站上传到主机并且返回不起作用,但仅适用于桌面。
这是XAMPP视图:
这是托管视图:
我知道连接正常,因为右侧的过滤器,这些选择是通过返回选择填充的,并且它们在XAMPP和托管上都可以使用。
现在这里是代码:
这是Model Food.php:
public function showAll()
{
// creating a database connection
$this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
return $this->db_connection->query("SELECT * FROM food ORDER BY price_food ASC;");
var_dump($sql);
}
这是View food.php上的表格
<style type="text/css">
table {
font-size:16px;
}
</style>
<table class="table table-bordered table-condensed">
<tr>
<th>
<center>Contenedor</center>
</th>
<th>
<center>Animal</center>
</th>
<th>
<center>Segmento</center>
</th>
<th>
<center>Marca</center>
</th>
<th>
<center>Sabor</center>
</th>
<th>
<center>Peso</center>
</th>
<th>
<center>Precio</center>
</th>
</tr>
<?php
foreach($food->showAll() as $food_table) {
?>
<tr>
<td>
<center><?= $food_table["container_food"]?></center>
</td>
<td>
<center><?= $food_table["animal_name_food"]?></center>
</td>
<td style="width:20%;">
<center><?= $food_table["animal_segment_food"]?></center>
</td>
<td>
<center><?= $food_table["brand_food"]?></center>
</td>
<td style="width:20%;">
<center><?= $food_table["flavor_food"]?></center>
</td>
<td>
<center><?= $food_table["weight_food"]?></center>
</td>
<td style="font-size:18px;">
<center>$ <?= $food_table["price_food"]?></center>
</td>
</tr>
<?php
}
?>
</table>
我看不出问题,这是我第一次在真正的托管环境中工作,所以在研究了很多MySQLi和PHP之后,我就不知道出了什么问题。
欢迎任何帮助,谢谢。
答案 0 :(得分:0)
没关系,我尝试了一种不同的方法并且它有效,我仍然不知道为什么它在XAMPP上工作而不在托管上。
以下是工作代码:
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT * FROM food ORDER BY price_food ASC;";
$result = $mysqli->query($query);
while($row = $result->fetch_array())
{
$rows[] = $row;
}
return $rows;
/* free result set */
$result->close();
/* close connection */
$mysqli->close();