我有一个php脚本,我从linux中的命令行运行(非交互式),它在mysql数据库中进行查找,并根据字段“SentOrNotSent”的值发送或不发送电子邮件。它工作正常,这个PHP脚本。
现在我想修改脚本,以便在第一次运行时,它要求输入来自键盘的“ID”号,然后它进入MySql数据库并删除带有该ID的记录。我知道怎么做删除,我迷失了如何让这个脚本要求输入,然后使用该值作为mysql update语句的一部分来删除记录。
此脚本仅从命令行运行,并且位于只有管理员才能访问的目录中。
谢谢你的帮助。
答案 0 :(得分:6)
您可以通过$ argc(cli args计数)和$ argv(实际参数值数组)检查命令行参数。或者您可以通过读取标准输入(STDIN)来提示输入并获取输入。
给出命令行:
$ ./myscript 1234
myscript.php:
<?php
if (isset($argv[1])) {
$myid = (int)$argv[1]; // use the command line argument for ID
} else {
print("Enter an ID number: ");
$myid = (int)fgets(STDIN); // prompt the user for an ID
}
... proceed with $myid = 1234 or whatever you entered.
答案 1 :(得分:3)
一行代码(第2行):
<?php
$id = trim(shell_exec("read -p 'Enter your ID: ' id\necho \$id"));
echo "The ID you entered was $id (this is PHP speaking… do your database stuff next…)\n";
exit;
在http://oneqonea.blogspot.com/2012/04/how-can-i-capture-user-input-from-cmd.html
查看此答案的来源答案 2 :(得分:0)
“php script.php 1234”只需添加id,它真的需要互动吗? 1234将在$ argv数组中,然后可以在脚本中使用