选择SQL查询在PHP中不起作用

时间:2016-12-29 23:39:44

标签: php mysql sql-server

我遇到了一个SQL查询问题,我已经插入到一段PHP代码中来检索一些数据。查询本身在SQL中完美运行。我使用以下PHP脚本。 我有以下目标:

  1. 连接到现有数据库。这部分效果很好。
  2. 从专栏'品牌'中获取数据表'运输'在$sql。这部分在这个阶段不起作用。 echo ($sql)返回SELECT Brand FROM Transport WHERE Type = 'car'
  3. 如果您看到此问题的解决方案以及代码的其余部分是否正确,请告诉我。这是我的f_sqlConnect()

    function f_sqlConnect() {
        $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
        if (!link) {
            die('Could not connect: '.mysql_error());
        }
        $db_selected = mysql_select_db(DB_NAME, $link);
        if (!$db_selected) {
            die('Can not use'.DB_NAME.
                ': '.mysql_error());
        }
    }
    
    /*This function cleans up the array to protect against injection attacks */
    function f_clean($array) {
        return array_map('mysql_real_escape_string', $array);
    }
    
    <?php
        // Create connection
        $link = f_sqlConnect();
    
        // Getting data from the column Brand of the table Transport
        $sql = "SELECT Brand FROM Transport WHERE Type = 'car'";
    
        $result = $link->query($sql);
    
        if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo "Brand: " . $row["Brand"]. "<br>";
        }
        } else {
        echo "0 results";
        }
        $link->close();
        ?>
    

1 个答案:

答案 0 :(得分:0)

以下是代码,但未看到 f_sqlConnect(); 方法。在您的情况下,此方法应返回DB的连接字符串。但是你可以使用以下代码,这必须有效。

<?php
$servername = "Your_db_host";
$username = "your_db_username";
$password = "your_db_password";
$dbname = "your_DB_name";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT Brand FROM Transport WHERE Type = 'car'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "Brand: " . $row["Brand"];
    }
} else {
    echo "0 results";
}
$conn->close();
?> 

注意: mysqli 的面向对象方式,您也可以使用程序方式连接并获取数据。