Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在后台/服务器上运行_Php_Android_Api_Laravel 4_Httprequest - Fatal编程技术网

PHP在后台/服务器上运行

PHP在后台/服务器上运行,php,android,api,laravel-4,httprequest,Php,Android,Api,Laravel 4,Httprequest,我想在服务器上运行PHP,例如,我想检查客户的生日 $someones_birthday_today = mysql_query("SELECT * FROM users WHERE birthdate=".date('Y-m-d')." "); if($someones_birthday_today){ mysql_query("INSERT INTO birthdays (`user_id`, `birthdate`) VALUE ('$user_id', '$birthdate'

我想在服务器上运行PHP,例如,我想检查客户的生日

$someones_birthday_today = mysql_query("SELECT * FROM users WHERE birthdate=".date('Y-m-d')." ");

if($someones_birthday_today){
    mysql_query("INSERT INTO birthdays (`user_id`, `birthdate`) VALUE ('$user_id', '$birthdate') ");
}
查询、选择和插入不会减慢过程。但这是来自im开发的移动应用程序的Http请求。我不想每次用户访问我的应用程序日志视图时都请求

每分钟/天/月,它都会检查今天的生日,并将此信息插入数据库以获取通知。 当用户登录到他的个人资料时,php将查询生日表(如果有)

原因:所以每次用户登录到他的个人资料时,我都要查询、选择和插入。这样,页面将加载得更快

研究:我对cron的工作做了一些研究。它说它应该可以访问web主机中的shell。但是还有别的办法吗

我在用MacMavericks 10.9
我使用Laravel

Cron作业不是实现这一点的合适工具

  • 如果您想这样做的唯一目的是检查用户的个人资料,那么您只需在用户查看其个人资料时发送此查询,并对其进行处理即可。您发布的查询运行起来并不特别慢

  • 如果确实要在用户访问的每个页面上确定用户的生日,最好在用户登录时加载生日,并通过将其缓存在中或使用来记住生日

  • 如果您想显示生日列表或进行任何其他复杂的计算,那么您可以实现与选择和后续插入几乎相同的功能:

    CREATE VIEW birthdays AS 
    SELECT user_id, birthdate FROM users WHERE birthdate=CURDATE();
    
    区别在于您只需运行CREATEVIEW语句一次(它是持久的)。您可以像查询表一样查询视图,当日期更改或插入新用户记录时,视图会自动更新

    再说一次——如果你真的不需要对它进行太多的查询,或者不得不对它做一些花哨的事情,那么这就太过分了


你在这个问题上有很多问题,你可能想缩小范围(你可以问多个问题)。为什么每分钟检查一次生日,而不是每天检查一次?“让查询选择并插入”如何加快页面加载?您是否考虑过使用cron脚本更新数据库的任何其他方法(浏览PHP页面似乎不必要)?动态计算生日,而不是创建一个新表,您必须将其添加到其中(不要忘记删除),这是“标准”做法欢迎使用,但请避免使用不推荐的
mysql\u*
函数;使用PDO/MySQLiinstead@Jordan很抱歉,我忘了说这只是一个简单的想法。@Raptor我实际上使用的是laravel。这只是一个示例代码,我的想法是在后台运行php。