0
我有一個類更新xml文件,但是當它來保存文件時,我得到的錯誤:SimpleXML-> asXML($ filePath )未能打開流權限被拒絕。我以前從未遇到過這個問題,在互聯網上找不到任何有用的東西。
public static function CreateEntityConfig($database,$tables,$overwriteNodes = false) {
if(!empty($database) && !empty($tables)) {
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$conn) { die('Could not connect: '.mysql_error()); }
// check to see if database node exists and overwrite if $overwriteNodes set to true
// else create new database node
mysql_select_db($database);
if(self::NodeExists('database',array('name',$database))) {
if($overwriteNodes) {
self::RemoveNode('database', array('name',$database));
} else {
die($database.' node already exists');
}
} else {
//echo '<br>type='.get_class(self::$_xml);
$databaseNode = self::AddNode(self::$_xml, 'Database', array('name' => $database));
}
$tableNode = self::AddNode($databaseNode, 'Table', array('name' => $tables));
$result = mysql_query('select * from '.$tables);
if(!$result) { die('Query failed: '. mysql_error()); }
$i = 0;
while($i < mysql_num_fields($result)) {
$meta = mysql_fetch_field($result, $i);
if($meta) {
self::AddNode(
$tableNode,
'Field',
array(
'name' => $meta->name,
'not_null' => $meta->not_null,
'type' => $meta->type
)
);
} else {
die('Unable to fetch meta information for '.$tables);
}
$i++;
}
mysql_free_result($result);
//if(!self::$_xml->asXML()) { die('Unable save xml to file'); }
echo self::$_xml->asXML(self::$_xmlFilePath);
} else { die('Database and Table arguments required'); }
mysql_close();
echo self::$_xmlFilePath.' successfully built.';
}
儘管Phil的回答並不完全正確,但它幫助我找出了適用於我的解決方案。下面是我怎麼解釋 - 看看第一個答案 https://superuser.com/questions/19318/how-can-i-give-write-access-of-a-folder-to-all-users-in-linux
感謝任何及所有的幫助, 乙
我運行Ubuntu 11一個很好的解決方案,這是一個用戶下運行具有對該目錄的寫入權限,否則我將無法創建該項目。腳本是否可能在不同的用戶下執行?我的系統上只有兩個是我和根 – bflemi3 2011-05-08 23:26:25
@ bflemi3您是通過命令行運行它還是瀏覽到Web服務器上的腳本?另外,我想你會發現有兩個以上的用戶;-) – Phil 2011-05-08 23:30:32
@Phil通過瀏覽器瀏覽腳本。哦,不知道 - 我是一般的Ubuntu和Linux新手。謝謝 – bflemi3 2011-05-08 23:41:23