服务器上的PHP应用程序将带有序号的某个文档保存到MySQL数据库中。如何将序列号获取到启动本地文档扫描程序的命令行提示符?
例如:
c:\ myscan ask_for_current_seq_nmbr.pdf
myscan是用c编写的,用来处理PC的东西。只有文件名是未知的。一些代码(来自查询PHP文件)
$query = "SELECT last_seq FROM seq_table WHERE cat = 1";
$result = mysql_query($query, $link) or die('ERROR: '. mysql_error().'<br />ON LINE: '.__LINE__);
while($row = mysql_fetch_assoc($result)) {
echo $row['last_seq'];
}
!!!注意 !!! 我从远程服务器获取页面。恩。 www.site.com/query.php?q=SELECT * FROM ... 并且该选择将导致我在命令提示符中使用的最后一个使用的序列号。
!!更新!!
我们必须通过远程服务器上的PHP文件来避免使用必须在IP基础上启用的Remoote MySQL。
答案 0 :(得分:1)
您可以使用来自exec
familyDocs的PHP中的各种函数调用在命令行上运行的进程。
如果您在构建实际命令字符串时遇到问题,可以执行以下操作:
$cmd = sprintf('c:\myscan %d.pdf', $sequential_number);
正如您所写,脚本已经使用$sequential_number
将其写入数据库中我假设您已经拥有它。
如果数据库生成数字,则可能作为主键。有关获取ID的信息,请参阅mysql_insert_id
Docs。
答案 1 :(得分:0)
好的判断是反斜杠和C:\我猜你正在使用Windows。
您必须结合以下内容:
http://dev.mysql.com/doc/refman/5.5/en/mysql.html
How to store the result of a command expression in a variable using bat scripts?
然后使用%VARIABLE_NAME%语法访问您创建的变量的内容。
答案 2 :(得分:0)
你的mysql表中应该有一个标志,如is_processed,其值为0或1。 扫描开始时,它运行查询:
SELECT * FROM TABLE where is_processed = 0 order by sec_number
处理完毕后,您应该运行查询:
UPDATE TABLE set is_processed = 1 where sec_number = 'sec_processed_number';