我认为这个问题真的很愚蠢,但我无法找到答案,另外我还是PHP的新手。
问题在于我使用的是PHPWord,我试图仅使用PHP和PHPWord跳过MySQL来执行传递[ID] .docx 文件,该文件包含ID,正在添加+1,每个文件都是创建的;
我当前的代码加载/保存如下所示:
require_once 'PHPWord.php';
$PHPWord = new PHPWord();
$document = $PHPWord->loadTemplate('./dfiles/delivery_template.docx');
$nm = $_POST['NAME_' . 1];
$qt = $_POST['QUANTITY_' . 1];
$iid = $_POST['ID_' . 1];
$t = 1000;
$wg = $qt * $t;
$document->setValue('pn1', $nm);
$document->setValue('kg1', $wg);
$numid = 1;
$document->save('Delivery G'.$numid++.'-'.date(m).'-'.date(Y).'.docx', './dfiles/');
而且我知道 $ numid 会将值设置为1,当代码再次触发此函数时,请帮助,如何在没有MySQL的情况下执行此操作?
另外信息:此代码将由 HTML提交功能触发。
答案 0 :(得分:1)
你可以做差异:
生成一些随机数并附加到文件,如果文件存在,则重新生成随机数并附加到文件,继续执行此过程直到找不到重复文件。
您可以添加日期和时间,以便它也是唯一且可读的。(例如:交付G 10-8-2015 [15.12.99] .doc)
生成哈希码,然后追加。
答案 1 :(得分:1)
PHP变量仅在PHP运行时才持续 - 即生成对请求的响应所花费的时间。如果要引用先前执行中创建或修改的值,则需要将其存储在某处。你可以使用一个文件:
function getNextNumber()
{
$number=file_get_contents("/tmp/counter");
file_put_contents("/tmp/counter", ++$number);
return $number;
}
大多数情况下,在非常低容量的服务器上应该可以。 但它不会扩展!迟早会遇到争用。
这是为什么我们使用数据库。
它不一定是MySQL(你没有提供任何理由为什么你不能使用可能有用的MySQL)还有很多其他适合的数据库(包括不需要的SQLite)要运行的数据库服务器。)