如何在php中保存sql查询的值?

时间:2017-10-09 10:53:51

标签: php mysql sql

我有这个SQL查询

$sql = "SELECT Trans_id ,**Source** ,Destination, Journey_type,Start_Date, 
            End_Date,Start_Time,End_Time,
            min((TIMESTAMPDIFF(minute, Start_Date_time , End_Date_time) )) as minimum_time 
        FROM transport_type 
        WHERE destination = '" . $selectedDestination .  "' 
          AND Start_Date = '" . $selectedDate ."'" . $selectedRide ;

我只想在PHP中保存 Source 元素以供进一步使用。

我如何得到这个?请帮忙。

2 个答案:

答案 0 :(得分:0)

正确的方法是使用PDO

查看PDO::query页面上的示例:

<?php
function getFruit($conn) {
    $sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
    foreach ($conn->query($sql) as $row) {
        print $row['name'] . "\t";
        print $row['color'] . "\t";
        print $row['calories'] . "\n";
    }
}
?>

答案 1 :(得分:0)

首先,有一些重点:

  • 直接在查询中使用变量不是最佳做法,您可以更好地(在很多方面)使用准备好的统计信息(PDOMySQLI
  • 其次,为了提高效率,您应该只检索要使用的查询中的值 - 如果您不需要Trans_idDestination(等等),那么就没有必要将它们包含在您的选择

考虑到这一点,我将根据以下假设提供答案:

  • 您想要使用查询中Source的输出,并将其分配给您的php中的$variable
  • 您正在使用mysqli连接到您的数据库 即$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
  • 你只想要一行
  • 您的原始查询确实有效,因为我不知道为什么您最后会结束selectedRide

如果是这样,您可以执行以下操作:

$sql = "SELECT source 
         FROM transport_type 
        WHERE destination = '" . $selectedDestination .  "' 
        AND Start_Date = '" . $selectedDate ."'" . $selectedRide
        LIMIT 1;  // added just to enforce the one row thing

$result = mysqli_query($mysqli,$sql);
$row = mysqli_fetch_assoc($result);
$source = $row['source'];

但是,更好的解决方案是使用mysqli_prepare(或PDO),如上所述