Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL选择查询不工作。_Php_Mysql - Fatal编程技术网

Php MySQL选择查询不工作。

Php MySQL选择查询不工作。,php,mysql,Php,Mysql,为什么我的Sql查询不起作用?数据库中没有问题。但是查询不会执行。我想在这个程序中找到距离,它是通过减去A点和B点的值来计算出来的。如果station是一个varchar,那么需要在字符串周围加引号 <?php $hostname='localhost'; $user='root'; $password=''; $connect=mysqli_connect($hostname,$user,$password,'a_railway'); if(!$connect) { die('

为什么我的Sql查询不起作用?数据库中没有问题。但是查询不会执行。我想在这个程序中找到距离,它是通过减去A点和B点的值来计算出来的。

如果station是一个varchar,那么需要在字符串周围加引号

<?php
$hostname='localhost';
$user='root';
$password='';
$connect=mysqli_connect($hostname,$user,$password,'a_railway');

if(!$connect)
 {
   die('Could not connect');
  }

$rs="central";
$rd="central";
$s="A";
$d="B";

$dist=call_dist($rs,$rd,$s,$d,$connect);
echo $dist;

function call_dist($rs,$rd,$s,$d,$connect)
{
    $src_dist="SELECT Distance FROM $rs WHERE Station=$s ";
    $dest_dist="SELECT Distance FROM $rs WHERE Station=$d "; 
    $src_dist=mysqli_query($connect,$src_dist);
    $dest_dist=mysqli_query($connect,$dest_dist);
     $dist=abs($src_dist-$dest_dist);
    return $dist;
}
?>
但是,您不应该在这样的字符串中插入值。请使用事先准备好的声明

阅读此参考资料,它将使您的代码和生活更加轻松:

编辑也可以在sql中进行计算:

$src_dist="SELECT Distance FROM $rs WHERE Station='$s' ";

你不工作是什么意思?会发生什么?尝试检查$src_dist==FALSE{diemysqli_error;}。还要记住,它返回一个资源。您需要使用获取数据。是否检查了mysqli\u查询返回的内容?它给你一个结果集,而你不能像你试图做的那样在结果集上做数学。获取错误通知:在第30行的C:\xampp\htdocs\check\test.php中,类mysqli_result的对象无法转换为int。如何将其转换为int?@SanjayMalhotra-您将返回一个resultset。你需要从结果集中获取一条记录,然后你可以对它进行计算。我知道这是一个愚蠢的问题,但如何从中获取记录?是的,我知道这很容易受到sql注入的影响。我只是一个php的初学者,所以下次我一定会尝试。但是我没有得到as a和as d的作用是什么?它创建子查询,并为生成的子结果提供一个别名。在这个sql查询中,我们首先完成两个较小的查询,重命名结果,然后使用这些结果执行一个外部查询。
$dist_query = mysqli_query("SELECT ABS(s.Distance - d.Distance) as dist FROM
                ( SELECT Distance FROM $rs WHERE Station='$s' ) as s,
                ( SELECT Distance FROM $rs WHERE Station='$d' ) as d");
$dist_result = $dist_query->fetch_assoc();
return $dist_result[0]['dist'];