php - 无法使用 mysqli_real_connect 进行连接。为什么即使我的 PHP 代码有任何错误也没有解析 HTML?

标签 php html mysql

<?php
$link = mysqli_init();
$db = mysqli_real_connect($link, 'localhost', 'bp6am', 'bp6ampass', 'expense_report') or 
    die('Unable to connect');
mysqli_select_db($link, 'expense_report');

?>
<html>
<head>
<title>Expenditure Log Form</title>
</head>

<body>
<form action="commit.php" method="post">
<table>

<tr>
<td>Name</td>
<td><input type="text" name="name"/><br></td>
</tr>

<tr>
<td>Category</td>
<td><select name="category">
<?php 
//get the expenses categories
$query = 'SELECT cat_id, cat_name
            FROM exp_category
            ORDER BY cat_name';
        $result = mysqli_query($query, $db) or
            die(mysqli_connect_error($db));

//populate the dropdown menu for expenses category
while($row = mysqli_fetch_assoc($result)) {
        foreach ($row as $value) {
            echo '<option value="' . $row['cat_id'] . '">';
            echo $row['cat_name'] . '</option>';
        }
}
?>
</select></td>      
</tr>

<tr>
<td>Amount</td>
<td><input type="text" name="amount"/></td>
</tr>

<tr>
<td>Payment Mode</td>
<td><select name="payment">
<?php
//retrieve and populate
$query = 'SELECT pay_id, pay_type
            FROM pay_mode
                ORDER BY pay_id';
        $result = mysqli_query($query, $db) or
            die(mysqli_connect_error($db));
//populate
while($row = mysqli_fetch_assoc($result)) {
        foreach ($row as $value) {
            echo '<option value="' . $row['pay_id'] . '">';
            echo $row['pay_type'] . '</option>';
        }
}
?>
</select></td>
</tr>

</table>
</form>
</body>

</html>

当我在浏览器中运行该文件时,只构造了名称字段。之后是带有选择图标的类别文本,但单击它时没有菜单下拉。页面的其余部分是空白的!!最近开始使用 PHP,请帮忙。

我想知道连接是否建立。即使没有建立连接,为什么在 Category 字段后没有显示其他 HTML 元素?

我检查了我的连接参数。即使他们错了,我也应该收到“无法连接”消息,对吧?

最佳答案

如果您打开了error_reporting,您会通过查看服务器日志知道这一点,看看How to get useful error messages in PHP (StackOverflow) .

另外,看看 mysqli_query PHP.net 上的文档,它会告诉您首先是连接,然后是查询字符串。

您目前使用的是:

$result = mysqli_query($query, $db)

应该是

$result = mysqli_query($db, $query)

要回答您的问题,是的,如果无法连接(参数错误),您会收到无法连接

您的 while 循环中也不需要 foreach 循环。

while($row = mysqli_fetch_assoc($result)) {
        foreach ($row as $value) {
            echo '<option value="' . $row['cat_id'] . '">';
            echo $row['cat_name'] . '</option>';
        }
}

上面的代码应该是这样的:

while($row = mysqli_fetch_assoc($result)) {
    echo '<option value="' . $row['cat_id'] . '">';
    echo $row['cat_name'] . '</option>';
}

关于php - 无法使用 mysqli_real_connect 进行连接。为什么即使我的 PHP 代码有任何错误也没有解析 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32550272/

相关文章:

php - 通过 JSON 将 base64 图像发送到 PHP GD 库

javascript - 使整个列消失

php - 高效的mysql查询产品目录

mysql - 如何将 Tomcat 上运行的 Spring Mvc Hibernate MySql 应用程序推送到 Bluemix 云?

MYSQL 使用 LIKE 进行特定搜索

java - php套接字从java服务器读取json数组

php - 多选 MySQL 数据中的复选框,用逗号 (,) 分隔

javascript - 单页多 slider

javascript - 使用 css 打印页面时出错

php - 使用 MySQL 的准备语句不将 POST 值插入数据库表