【问题标题】:How to make reference to one of my MySQL databases inside my PHP file?如何在我的 PHP 文件中引用我的 MySQL 数据库之一?
【发布时间】:2018-12-04 13:54:48
【问题描述】:

我已经问过这个相关问题:https://webmasters.stackexchange.com/questions/116055/using-mysql-database-data-directly-into-generating-articles-for-my-website-new/116056?noredirect=1#comment154341_116056

此时,我开始更好地理解代码语法和项目结构。

但是我已经使用 MySQL 控制台创建了我的数据库。到目前为止它只有几个条目,我想尝试调整 Zach 示例中的代码,但这是我遇到的问题:

问题是,我不确定如何获取对我的数据库对象的引用?在 Zach 的代码示例中有变量 $db,我想这是我需要保留对我自己的实际数据库的引用的地方。

这是 Zach 的伪代码(可能是),注意:他总是对我说不要复制粘贴它,但我只是想看看如何在我的项目中使用它。

<?php

$SQL_Query = "SELECT * FROM your_table";
$SQL_Run = mysqli_query($db, $SQL_Query);

while ($row = mysqli_fetch_assoc($SQL_Run)) {
echo 
"<section class='wrapper style1'>
<div class='inner'>
<header class='align-center'>
<h2>" . $row['imageurl'] . "</h2>
<img src='" . $row['title'] . "'> 
<p>" . $row['description'] . "</p>
</header>
</div>
</section>";
}

?>

所以我现在的问题是:如何创建引用 $db?

【问题讨论】:

    标签: html php mysql database phpmyadmin


    【解决方案1】:

    您的答案是建立连接的正确方法。我想指出,有两种方法可以编写该声明。您在网上找到的版本是一种方式,但从我们之前的对话中,您可以这样写:

    <?php
    
    // Establish how to log in
    $servername = "127.0.0.1";
    $username = "root";
    $password = "yourpasswordhere";
    $dbname = "yourdatabasenamehere";
    
    // create the database connection
    $db = new mysqli($servername, $username, $password, $dbname);
    
    // if it fails, kill the site.
    if (mysqli_connect_error($db)) {
        die("Connection failed: " . mysqli_connect_error($db));
    }
    
    // your first query to grab all the article data
    $SQL_Query = "SELECT * FROM your_table";
    // run the query
    $SQL_Run = mysqli_query($db, $SQL_Query);
    
    // while data exists (it makes sure that you have post data, otherwise nothing shows up)
    while ($row = mysqli_fetch_assoc($SQL_Run)) {
        echo 
        "<section class='wrapper style1'>
        <div class='inner'>
            <header class='align-center'>
                <h2>" . $row['imageurl'] . "</h2>
                <img src='" . $row['title'] . "'> 
                <p>" . $row['description'] . "</p>
            </header>
        </div>
    </section>";
    }
    
    // Close the connection
    mysqli_close($db);
    ?>
    

    你会注意到连接写得像一个函数。

    mysqli_num_rows($result);
    

    而不是

    $result->num_rows
    

    两者都做同样的事情,只是个人喜好。这应该希望从你的第一篇文章中清除一些东西:)

    【讨论】:

    • 谢谢扎克。我实际上让它通宵工作:DI 还了解到我可以使用 SELECT 调用按类型和顺序对它们进行排序,然后按 ID 或日期等升序/降序等。我会将我的代码发布到我的答案底部以获得进一步的帮助对于未来的读者(和/或可能对我来说下次我需要这样做哈哈!)再次感谢您为我节省了数小时的试用 n 错误的大量帮助。干杯
    【解决方案2】:

    我已经走得更远了,我想已经回答了我自己的问题。我发现研究起来有点棘手,因为我不了解 features/api/scripts/etc 的所有不同术语和名称。但我只需要阅读mysqli_connect() 的文档,我将代码设置如下,现在我已将数据库中的所有数据提取到我的 html/php 文件中的单词中。

    从这里我想我可以重写代码以首先按日期对其进行排序,然后当然可以将最新帖子放在每个页面的顶部等。

    我还可以允许用户点击“类型”并仅查看喜剧。

    这里是用于将数据解析到我的 index.php 文件中的代码:

    <?php
    $servername = "127.0.0.1";
    $username = "root";
    $password = "yourpasswordhere";
    $dbname = "yourdatabasenamehere";
    
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    
    $sql = "SELECT id, type, title FROM releases";
    $result = $conn->query($sql);
    
    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "id: " . $row["id"]. " - Type: " . $row["type"]. " - Title " .         $row["title"]. "<br>";
        }   
    } else {
        echo "0 results";
    }
    $conn->close();
    ?> 
    

    我扩展了上述工作,让 php 脚本获取数据库中的所有条目,并为每个条目创建我曾经拥有的上一篇 html 文章。在 SELECT 语句中,我可以控制显示哪些类型的条目(例如,对于某个类别)。我是这样做的:

      // make an html article based snippet (image, title, description, etc),
      //once for each entry in the database table...
     <?php
    $servername = "127.0.0.1";
    $username = "root";
    $password = "somepassword";
    $dbname = "somedatabasename";
    
    // create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // check connection
    if ($conn->connect_error) {
    die("connection failed: " . $conn->connect_error);
    }
    
    $sql = "SELECT * FROM releases ORDER BY id DESC";
    $result = $conn->query($sql);
    
    
    if ($result->num_rows > 0) 
    {
    // output data of each row
    while($row = $result->fetch_assoc()) 
    {
    echo '<section class="wrapper style1">';
    echo '<div class="inner">';
    echo '<header class="align-center">';
    echo '<h2>'. $row["title"] . '</h2>';
    echo '<div class="image fit">';
    echo '<img src='. $row["imgurl"] .'>'; 
    echo '</div> <p> RELEASE TITLE: ' . $row["title"] . '<br /> DATE POSTED: ' . $row["postdate"] . '<br /> DESCRIPTION: ' . $row["description"] . '</p>';
    echo '<a href="'.$row["link"].'">DOWNLOAD LINK: '.$row["link"].'</a> <br />';
    $NfoLink = $row["nfolink"];
    if ($NfoLink != 'not found' && $NfoLink != '')
    {   
        echo '<a href="'.$row["nfolink"].'">NFO LINK/MORE DOWNLOADS: '.$row["nfolink"].'</a>';
    }
    echo '</header>';
    echo '</div>';
    echo '</section>';
    }
    } 
    else 
    {
    echo "0 results";
    }
    $conn->close();
    ?>  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-02
      • 2013-09-10
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      • 2020-05-14
      • 2022-12-04
      • 2016-01-16
      相关资源
      最近更新 更多