Php MySQL选择查询不工作。
为什么我的Sql查询不起作用?数据库中没有问题。但是查询不会执行。我想在这个程序中找到距离,它是通过减去A点和B点的值来计算出来的。如果station是一个varchar,那么需要在字符串周围加引号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('
<?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'];