我试图创建一个脚本,该脚本会在创建/更新项目时发布存储在文本文件中的通知。 如果项目已创建,则需要创建该文件,如果项目正在更新,则需要为其更新现有的txt文件。PHP txt文件编辑问题
到目前为止,我已经创建了txt文件并对其进行了更新。但是,它只更新一次,如果我尝试再次更新文件它只是不这样做。
下面的代码:
function addPost($userID, $content, $date, $featured, $projectID){
if($projectID != 0){
$addClass = 'normal';
$sql1 = "SELECT * FROM `blog` WHERE `projectID` = ".$projectID;
$query1 = mysql_query($sql1);
$num_rows1 = mysql_num_rows($query1);
if($num_rows1 != 0){
$addClass = 'internalUpdate';
}
}else{
$addClass = 'normal';
}
switch($addClass){
case normal;
//SQL to get next ID
$nameQuery = mysql_query("SELECT MAX(ID) FROM `blog`");
$nameRow = mysql_fetch_array($nameQuery);
$nextID = $nameRow['MAX(ID)'] + 1;
//Set Blogname
$blogName = md5($nextID).'.txt';
$blogTargetFile = './file/blog/'.$blogName;
$fileHandle = fopen($blogTargetFile, 'w');
fwrite($fileHandle, $content);
fclose($fileHandle);
$sql2 = "INSERT INTO `blog` (`userID`, `name`, `created`, `featured`, `projectID`) VALUES ('".$userID."', '".$blogName."', '".$date."', '".$featured."', '".$projectID."')";
break;
case internalUpdate;
$sql1 = "SELECT * FROM `blog` WHERE `projectID` = ".$projectID;
$query1 = mysql_query($sql1);
$row1 = mysql_fetch_array($query1);
$blogName = $row1['name'];
$blogTargetFile = './file/blog/'.$blogName;
$fileHandle = fopen($blogTargetFile, 'w');
fwrite($fileHandle, $content);
fclose($fileHandle);
$sql2 = "UPDATE `blog` SET `created` = '".$date."' WHERE `ID` = ".$row1['ID'];
break;
}
mysql_query($sql2);
};
的想法?
查尔斯 - richini-design.co.uk
您必须稍微缩小问题范围。代码是否输入正确的“case”分支?如果是这样,是否有任何错误提出? – 2012-03-27 07:14:38
这是不是'案件'正常'的错误; ... case'internalUpdate';'(添加文本分隔符)? – Skrol29 2012-03-27 07:24:56
在那里看不到问题,认为'ID'和'MD5'整个洗牌有点奇怪,你可以先执行一条插入语句并用'mysql_insert_id()'得到id。由于标识符已经是唯一的,因此不需要散列该名称。我希望有一个原因,为什么你将博客内容存储在一个单独的文件(为什么不在数据库中?) – ashein 2012-03-27 07:25:18