gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 23:03:27 24 4
gpt4 key购买 nike

我有一个从 PayPal IPN 调用的 PHP 脚本。当用户从我的网站购买商品时,IPN PHP 脚本会在 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);
?>

如果我按原样运行此页面,则会抛出以下错误:

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

这就是让我相信我的引号和括号有问题的原因。

最佳答案

您应该解释一下您遇到的问题。我注意到的第一件事是您使用单引号 - 这些单引号不会解释内部字符串,因此 $email 不会被电子邮件值替换。

第二 - 您正在使用反引号。该命令在 bash shell 中执行,其中查询周围的反引号被解释为 shell 命令。尝试这个:$cmd = "echo mysql -u 用户名 -pPassword -e\\'从 db.users 删除,其中 users.email =\\\"$email\\\"\\' |明天" ;

关于PHP执行命令 "at"运行SQL查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28390343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com