2016-12-29 29 views
-1

我遇到了插入到一段PHP代碼中以檢索某些數據的SQL查詢問題。查詢本身在SQL中完美工作。我正在使用下面的PHP腳本。 我有以下目標:選擇SQL查詢不能在PHP中工作

  1. 連接到現有數據庫。這部分運作良好。
  2. $sql的表'Transport'的'Brand'列中獲取數據。這部分在這個階段不工作。 echo ($sql)回報SELECT Brand FROM Transport WHERE Type = 'car'

可否請你讓我知道如果你看到解決這個問題,如果代碼的其餘部分是正確的。這是我的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(); 
    ?> 
+0

你可以發佈函數f_sqlConnect()的代碼嗎? –

+0

嘗試用「;」結束sql sentece。如:「選擇品牌從運輸WHERE類型='汽車';」 – Hokusai

+0

@hokusai不會有所作爲 –

回答

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面向對象的方式,你可以使用過程太連接並獲取數據。

+0

*「1.連接到現有的數據庫。這部分工作正常。」* –

+0

這是我的f_sqlConnect() – user3105772

+0

哪一個?這是什麼意思?我沒有得到你的方法體 – webDev