以前使用MS Access的解決方案沒有完成,因此我這次嘗試使用php。通過PHP文件從mySQL數據庫中的記錄中寫入PHP文件
我有打開數據庫的PHP文件,讀取記錄列表,併爲每個記錄一個HTML文件,在各自的文件名(文件夾名稱在記錄的字段中找到)
代碼似乎工作但它不會超過第一個記錄。我根本沒有得到任何類型的錯誤信息,所以我對這個問題會是什麼感到困惑。我從這裏找到的很多帖子中創建了代碼。我唯一想知道的是,在腳本中是否以正確的順序打開和寫入函數(或稱爲它們)。也許原因是完全不同的。
基本上,我想要做的是腳本爲其各自的文件夾中的每個域創建一個「配置」php文件。所有配置文件之間的唯一區別是domainid字段。
dbase中的表被命名爲domains。這些字段是一個唯一編號的domainid;域,其中包含域名 - 例如domain.com - 並將其用作域文件夾;和domaingroup,它被用作「類別」文件夾。
爲安全起見,我更改了所有值,但db連接正常工作。
<?php
$db_name = "dbname";
$dbusername = "dbname";
$dbpassword = "password";
$server = "dbname.blahblahbla.hosted.com";
$connection = mysql_connect($server, $dbusername, $dbpassword) or die(mysql_error());
$db = mysql_select_db($db_name,$connection)or die(mysql_error());
$htmlquery = "select * from domains ORDER BY domain";
$htmlresult = mysql_query($htmlquery,$connection) or die(mysql_error());
$htmlinfo = mysql_fetch_array($htmlresult);
if ($htmlresult == 0) {
echo "<p>No Recourds Found</p>";
} else {
for ($i=0; $i <$htmlresult; $i++) {
$p = "<?php \n";
$p.= " //LS \n";
$p.= " define('Disable_Ads', 'No'); //Yes or No \n";
$p.= " define('Site_ID', ".$htmlinfo['domainid']."); \n";
$p.= " define('Short_Paragraph_Size',500);\n";
$p.= " define('Long_Paragraph_Size',1000);\n";
$p.= " ?> \n";
$htmlfolder = strtolower($htmlinfo['domaingroup']);
$htmldomain = strtolower($htmlinfo['domain']);
$a = fopen($htmlfolder."/".$htmldomain."/admin_config.php", 'w');
fwrite($a, $p);
echo $htmldomain." Completed <br />"; // TEMP - To try to see the looping of domain names
fclose($a);
}
}
?>
感謝
'mysql_query()'不返回行數,'mysql_fetch_array()'只返回一行。 – Barmar
請不要使用'mysql_ *'函數來編寫新的代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/q0gwD)。看到[紅色框](http://goo.gl/OWwr2)?相反,您應該瞭解[準備好的語句](http://goo.gl/orrj0)並使用[PDO](http://goo.gl/TD3xh)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定哪些,[這篇文章](http://goo.gl/YXyWL)會幫助你。如果你選擇PDO,[這裏是很好的教程](http://goo.gl/b2ATO)。另請參閱[爲什麼不應該在PHP中使用mysql函數?](http://goo.gl/J5jAo) –