Php 忽略查询中的Where子句变量

Php 忽略查询中的Where子句变量,php,mysql,variables,where,Php,Mysql,Variables,Where,我是新手。当我在WHERE子句中添加日期('YYYY-MM-DD')时,效果非常好。当我用上一页传递的变量替换它时,WHERE子句被忽略。是因为变量尚未创建吗 <?php $name = $_POST["start"]; ?> $query = "SELECT employees.first, employees.last, employees.street, employees.city, employees.a, employees.b, GROUP_CONCAT(em

我是新手。当我在WHERE子句中添加日期('YYYY-MM-DD')时,效果非常好。当我用上一页传递的变量替换它时,WHERE子句被忽略。是因为变量尚未创建吗

<?php $name = $_POST["start"]; ?>

$query = "SELECT employees.first, employees.last, employees.street, employees.city,  
employees.a, employees.b,  
GROUP_CONCAT(empchecks.checknum ORDER BY empchecks.checkdate SEPARATOR '<br /> ') as  
checknum, 
GROUP_CONCAT(empchecks.checkdate ORDER BY empchecks.checkdate      
SEPARATOR '<br /> ')  
as checkdate 
FROM employees 
INNER JOIN empchecks ON employees.enum = empchecks.enum 
WHERE empchecks.checkdate >= '$start' GROUP BY empchecks.enum";  

$query=“选择employees.first、employees.last、employees.street、employees.city、,
员工a,员工b,
组_CONCAT(empchecks.checknum ORDER BY empchecks.checkdate分隔符“
”)为 checknum, 组_CONCAT(empchecks.checkdate按empchecks.checkdate排序 分隔符“
”) 作为支票日期 来自员工 employees.enum=empchecks.enum上的内部联接empchecks 其中empchecks.checkdate>=“$start”按empchecks.enum分组”;
您的帖子是“开始”,但您将其分配给了“名称”

因此,在SQL中使用$name…

您的帖子是“开始”,但您将其分配给了“name”


因此,在SQL中使用$name…

看起来您正在将
$\u POST['start']
分配给
$name
,而不是分配给以后参考的
$start

看起来您正在分配
$\u POST['start']
$name
而不是到您稍后引用的
$start

变量$start不存在。试着用$name替换它,看看它是否有效。您还应该使用sprintf为查询传入变量。

变量$start不存在。试着用$name替换它,看看它是否有效。您还应该使用sprintf为查询传入变量。

写下这个 摘录($\U POST) 要能够使用$start而不是$name,请编写以下命令 摘录($\U POST)
为了能够使用$start而不是$name,请警告您的代码容易受到sql注入攻击!您能验证$start的值吗?也就是说,如果您回显$query,它会说什么?还有丹尼尔说的话。:)而且它不可能被忽视;相反,checkdate比较结果可能为true($start为空字符串或任何被强制为纪元开始的内容,等等)。给定您的代码,
$start
尚未定义。更重要的是,根据您如何清理输入变量,变量插值技术可能会让您受到SQL注入攻击。它是空的。但是,如果我在查询之外回显$start,它会告诉我在上一页中输入的日期。警告:您的代码容易受到sql注入攻击!您能验证$start的值吗?也就是说,如果您回显$query,它会说什么?还有丹尼尔说的话。:)而且它不可能被忽视;相反,checkdate比较结果可能为true($start为空字符串或任何被强制为纪元开始的内容,等等)。给定您的代码,
$start
尚未定义。更重要的是,根据您如何清理输入变量,变量插值技术可能会让您受到SQL注入攻击。它是空的。但是如果我在查询之外回显$start,它会告诉我在上一页输入的日期。13分钟前?你们都有10分钟,11分钟还是12分钟?我是第一个;)13分钟前?你们都有10分钟,11分钟还是12分钟?我是第一个;)sql中$name的结果相同。当我回显$query时,$start/$name为空。sql中的$name的结果相同。当我回显$query时,$start/$name为空。