2016-12-29 28 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