简体   繁体   English

比较日期mysql / php不起作用

[英]Comparing dates mysql/php doesn't work

I have a problem. 我有个问题。 I have a SQL sentence and it works on phpMyAdmin, but on php it gives a null value. 我有一个SQL语句,它可以在phpMyAdmin上工作,但是在php上它给出一个空值。

SQL sentence with correct values: 具有正确值的SQL语句:

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

PHP code with null values: 具有空值的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;
}

I get the SQL sentence with "echo htmlspecialchars($sql);", I paste this sentence on PHPMyAdmin and it works perfectly. 我得到带有“ echo htmlspecialchars($ sql);”的SQL语句,将此语句粘贴到PHPMyAdmin上,它可以完美地工作。

Can anyone help me? 谁能帮我? I don't know why it doesn't work on PHP and I don't know how to fix it. 我不知道为什么它在PHP上不起作用,也不知道如何解决。

Thanks! 谢谢! :) :)

Seeing as you figured out what the issue is yourself, I'm just adding an answer to clarify a few things. 看到您知道问题出在哪里,我只是添加一个答案以澄清一些问题。

It is perfectly fine to use htmlspecialchars() , however only on user submitted values. 最好使用htmlspecialchars() ,但是仅在用户提交的值上使用。

The reason why it failed is you were using it on the full query, translating < to &lt; 它失败的原因是您在完整查询中使用了它,将<转换为&lt; , something SQL doesn't understand. ,这是SQL无法理解的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM