自动执行MySQL查询从PHP不工作

问题描述:

我想自动执行下面的PHP脚本来自动删除表中的一行3天后。但是,脚本似乎不起作用,即使查询已经产生了正确的结果。我试图手动运行它,并且它也工作。我不知道我是否已经正确地写剧本,但这里的代码:自动执行MySQL查询从PHP不工作

<?php 
require_once('../../resources/db_connect.php'); 
$query = "DELETE FROM user_orders WHERE date_order < DATE_SUB(CURDATE(), INTERVAL 3 DAY) AND ID_status_order = 1"; 
$result = @mysql_query($query); 
?> 

我在Windows上使用XAMPP。我试图通过Windows任务计划执行它,但我不认为它的工作。任何其他想法?

干杯

+0

尝试删除@ mysql_query前的脚本并手动运行脚本以查看错误 – SERPRO 2012-03-06 10:22:30

+0

欢迎使用堆栈溢出!您在查询中没有执行任何错误检查,因此如果查询失败,那么您的脚本将会中断也就不足为奇了。如何做到这一点在[mysql_query()'](http://php.net/mysql_query)手册或本[参考问题。](http://*.com/questions/6198104/reference什么是一个完美的代码样本使用的MySQL扩展) – 2012-03-06 10:22:59

+0

删除@,你会发现错误。 – Kuba 2012-03-06 10:23:17

隐藏错误不够好。 Thry先删除@,看看你有什么错误。回来并给出错误。

+0

没有得到任何错误。感谢提示队友。我想现在我需要知道如何在Windows中自动运行这个脚本 – gaban 2012-03-06 11:48:42

echo mysql_query($query) or mysql_error() 

您没有进行任何错误检查,并且@在命令前面甚至主动抑制错误。使用此检查与您的查询或数据库连接错误:

mysql_query($query) or die(mysql_error()); 

如果您要检查您的查询,但不希望它删除所有内容,添加另一个条件是:

... AND 1=0 

这总是假的,因此没有东西被删除。 MySQL仍然会检查你的查询并给你提供错误,例如,某些字段或表格是未知的。