我正在尝试创建一个保留计数的脚本,即使多次调用它也是如此。这是为脚本写入文件的某些行提供唯一ID。
例如:
Monday I call the script and make 2 lines. The script gives ID 1 and 2 to those lines.
Friday I call the script again and make another line. The script gives ID 3 to this one.
etc
答案 0 :(得分:6)
我建议使用MySQL的自动增量功能。
否则,存储一个平面文件以存储运行计数(并在使用时锁定它以避免并发问题)。
答案 1 :(得分:2)
您无法使用静态变量执行此操作。如果脚本结束,变量将失去其值。您可以将信息保存在所需的任何存储类型中(MySQL,文本文件,xml ...)。
答案 2 :(得分:1)
如何读取添加的最后一行的ID并将其增加一个? PHP对数据类型并不严格,因此很容易做到像
这样的事情$a = "1";
$a = (int)$a;
$a++;
// write $a for next line
答案 3 :(得分:1)
如果您尚未与数据库进行交互,那么最佳答案可能是SQLite。 (SQLite是一个存储在平面文件中的SQL可访问数据库,允许基本数据库功能而无需持久服务器。可以使用PDO在PHP中访问它。http://us3.php.net/manual/en/ref.pdo-sqlite.php)
否则,阅读文件可能是最简单的方法。使用fseek有一种指数级更聪明,更有效的方法,但现在要弄清楚它还为时过早。
<?php
$file = fopen($theFilename, 'r');
while ($line = fscanf($file)); //Ugly, but the last value of $line will be the last line of the file. (Super cumbersome if the file is big.)
$array = explode($line, '|') // Or whatever delimiter you're using to separate data
$last_id = $array[0] // Assuming the ID is in the first place in the file.
?>