比较日期mysql / php不起作用

时间:2017-03-15 16:24:33

标签: php mysql sql

我有问题。我有一个SQL语句,它适用于phpMyAdmin,但在php上它给出一个空值。

具有正确值的SQL语句:

SELECT * FROM `CON_DECKEL` WHERE fecha < (SELECT STR_TO_DATE('2017-03-15T15:53','%Y-%m-%dT%H:%i')) LIMIT 3;

具有空值的PHP代码:

$sql = "SELECT * FROM `CON_DECKEL` WHERE fecha < (SELECT STR_TO_DATE('2017-03-15T15:53','%Y-%m-%dT%H:%i')) LIMIT 3;";

echo htmlspecialchars($sql);

if ($resultado = $conn->query(htmlspecialchars($sql))) {
    $query_success = true;
    $valores = array();
    var_dump($valores);
    while ($row = $resultado->fetch_object())
    {
        array_push($valores, array($row->canal1, $row->canal2, $row->canal3, $row->canal4, $row->fecha));
    }
    $resultado->close();
}
var_dump($valores);
$conn->close();
} else {
$msg = "Error de conexión: " . $conn->connect_error;
}

我用“echo htmlspecialchars($ sql);”得到SQL句子,我在PHPMyAdmin上粘贴这句话,它完美无缺。

任何人都可以帮助我吗?我不知道为什么它不适用于PHP,我不知道如何解决它。

谢谢! :)

1 个答案:

答案 0 :(得分:2)

当你弄清楚自己的问题时,我只是添加一个答案来澄清一些事情。

完全可以使用htmlspecialchars(),但仅限于用户提交的值。

失败的原因是您在完整查询中使用它,将<翻译为&lt;,这是SQL无法理解的。