【发布时间】:2017-03-15 16:24:33
【问题描述】:
我有问题。我有一个 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 上不起作用,我也不知道如何修复它。
谢谢! :)
【问题讨论】:
-
好的,请问如何解决?
-
@Imrik,你明白问题出在哪里了吗?你觉得你会怎么解决?
-
而不是
var_dump()输出一些有用的错误消息将ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);添加到脚本的顶部。这将强制任何mysqli_错误生成一个您不能错过或忽略的异常。 -
哦,是的,我看到了问题所在。对不起,谢谢! :)
-
query(htmlspecialchars($sql)我猜你想避免sql注入;我说的对吗?