PHP mysqli不工作

PHP mysqli不工作,php,mysqli,Php,Mysqli,所以我是mysqli的新手。我在网上找到的所有例子似乎都是旧的(程序性的)做事方式。有人能告诉我为什么我的代码在下面不起作用吗?我的数据库是“templatedb”。我的表格是“模板”。我的表中有一个条目,但我的echo没有收到任何输出。我的代码没有任何错误 <div id="templateSelector"> <?php $hostname = "localhost"; $username = "root"

所以我是mysqli的新手。我在网上找到的所有例子似乎都是旧的(程序性的)做事方式。有人能告诉我为什么我的代码在下面不起作用吗?我的数据库是“templatedb”。我的表格是“模板”。我的表中有一个条目,但我的echo没有收到任何输出。我的代码没有任何错误

        <div id="templateSelector">  
        <?php
        $hostname = "localhost";
        $username = "root";
        $password = "";
        $db = "templatedb";
        //connect
        mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
        $database = mysqli_connect($hostname, $username, $password, $db);
        if(!$database){
            die("Could not connect to the database");                
        }

        if ($database->connect_errno) {
            echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
        } else {
            $sql = "SELECT * FROM template";
            if (!$result = $database->query($sql)) {
                die('There was an error running the query [' . $db->error . ']');
            } else {

                echo "<label>Select Template</label>";
                echo "<select name='templates'>";
                while ($row = $result->fetch_assoc()) {
                    echo "hello";
                    echo $row['template_name'];
                    // echo "<option value='" . $row['template'] . "'>" . $row['template'] . "</option>";
                }
                echo "</select>";
            }
        }
        ?>

试着做下面的事情,对我有用

<div id="templateSelector">  
<?php
$hostname = "localhost";
$username = "root";
$password = "";
$db = "templatedb";
$mysqli = mysqli_connect($hostname, $username, $password, $db);
if($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
} else {
    $sql = "SELECT * FROM template";
    $result = mysqli_query($mysqli, $sql);
    if(!$result = $mysqli->query($sql)) {
        die('There was an error running the query [' . $db->error . ']');
    } else {
        echo "<label>Select Template</label>\n";
        echo "<select name='templates'>\n";
        while($row = $result->fetch_assoc()) {
            echo "<option>id = " . $row['id'] . "</option>\n";
        }
        echo "</select>";
    }
}
?>
</div>


确保数据库名为
templatedb
,它所在的表名为
template
,并且有一行名为
id
。我知道这听起来很琐碎,但拼写错误会破坏您的代码。

表中没有记录,或者您没有看到所有错误。我将通过指向答案的链接关闭此问题,该链接将帮助您显示发生的每个错误。而对于表内容,我们在这里不承担任何责任。我添加了行“mysqli_report(mysqli_report_ERROR | mysqli_report_STRICT);”在“mysqli_connect(..)之前,没有错误。我正在用db的屏幕截图更新问题。@JamieSnipes尝试我的答案,看看会发生什么?我现在正在我的测试机上工作。这一行不是答案中的唯一代码。我做了,数据库仍然没有输出。我做了,先生,请查看数据库结构的图片。检查拼写,确保数据库中至少有一行。假设所有内容都正确(确保mysql用户名和密码正确,您有权限,等等),则此代码应该可以工作。如果此代码假设为工作代码,则您不应发布相同的代码作为答案。我在个人测试机上制作了相同的表,运行了我在答案中输入的相同代码块,并打印出了正确的值。不知道为什么对他不起作用。。