首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP执行命令"at“以运行SQL查询问题

问PHP执行命令"at“以运行SQL查询问题
EN

Stack Overflow用户
提问于 2015-02-08 03:47:48
回答 2查看 105关注 0票数 0

我有一个从PayPal IPN调用的PHP脚本。当用户从我的站点购买东西时,IPN脚本在mysql数据库中创建用户。在以后的24小时内,该用户需要从数据库中删除。我认为使用"at“命令是可行的。我认为我遇到的问题是关于我命令中的括号。

代码语言:javascript
复制
<?php
$email = "buyer@gmail.com";
$cmd = 'mysql -u username -pPassword -e `DELETE FROM db.users WHERE users.email = "$email";`|at tomorrow';
exec($cmd);
?>

如果以-is方式运行此页面,它将引发以下错误:

代码语言:javascript
复制
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

正因为如此,我才相信我的引号和括号有问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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";

票数 0
EN

Stack Overflow用户

发布于 2015-02-08 04:10:28

试试这个:

代码语言:javascript
复制
"mysql -u username -pPassword -e `DELETE FROM db.users WHERE users.email = '$email'`|at tomorrow";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28390343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档