我有一个从PayPal IPN调用的PHP脚本。当用户从我的站点购买东西时,IPN脚本在mysql数据库中创建用户。在以后的24小时内,该用户需要从数据库中删除。我认为使用"at“命令是可行的。我认为我遇到的问题是关于我命令中的括号。
<?php
$email = "buyer@gmail.com";
$cmd = 'mysql -u username -pPassword -e `DELETE FROM db.users WHERE users.email = "$email";`|at tomorrow';
exec($cmd);
?>如果以-is方式运行此页面,它将引发以下错误:
warning: commands will be executed using /bin/sh
sh: 1: DELETE: not found
mysql: option '-e' requires an argument
job 38 at Sun Feb 8 04:59:00 2015正因为如此,我才相信我的引号和括号有问题。
发布于 2015-02-08 03:51:18
你应该解释一下你遇到的问题。我注意到的第一件事是,您使用单引号--这些单引号不会解释内部字符串,因此$email不会被电子邮件值替换。
第二,你用的是后排。该命令在bash中执行,其中查询周围的回退被解释为一个shell命令。试一试:$cmd = "echo mysql -u username -pPassword -e \\'DELETE FROM db.users WHERE users.email = \\\"$email\\\"\\' |at tomorrow";
发布于 2015-02-08 04:10:28
试试这个:
"mysql -u username -pPassword -e `DELETE FROM db.users WHERE users.email = '$email'`|at tomorrow";https://stackoverflow.com/questions/28390343
复制相似问题