2017-08-07 112 views
-2

问题是: 我想计算我的列中的数字r_start,其中r_start日期位于我的其他两个变量之间。但它总是给我错误通知:Undefined variable: z in [path] on line 173。所以它没有填充变量,什么使我认为COUNT不能正常工作。我做了很多reasearch,并尝试了一些东西,但我根本就找不到病因..MySQL Count不填充变量

$sqld = "SELECT r_start, COUNT (*) FROM reservation WHERE r_start BETWEEN '".$cid."' and '".$cod."' GROUP BY r_start"; 
if ($result = $con->query($sqld)) { 
    $z = mysqli_fetch_assoc($result); 
} 

该错误只与COUNT标记出现。在我的其他查询中,它工作得非常好。 f.e:

$sqlc = "SELECT * FROM reservation where r_ende between '".$cid."' and '".$cod."'"; 
if ($result = $con->query($sqlc)) { 
    $y = mysqli_fetch_assoc($result); 
} 

任何人能告诉我为什么吗?我做错了什么?

+0

http://php.net/manual/mysqli.quickstart.prepared-statements.php – Phil

回答

1

MySQL通常不会识别函数和开始参数之间的空格。我还建议你给这个列别名:

SELECT r_start, COUNT(*) as cnt 
FROM reservation r 
WHERE r_start BETWEEN '".$cid."' and '".$cod."' 
GROUP BY r_start; 

你还应该学会使用参数传递值到查询。不使用参数会使代码受到意想不到的(和难以调试的)语法错误的影响,并且容易受到SQL注入的影响。