【发布时间】:2013-07-03 23:43:48
【问题描述】:
以前使用 MS Access 的解决方案没有成功,所以这次我尝试使用 php。
我有这个 php 文件,它可以打开数据库,读取记录列表并为每条记录创建一个 html 文件,在它们各自的文件夹名称中(文件夹名称也可以在记录的字段中找到)
代码似乎有效,但没有超过第一条记录。我根本没有收到任何类型的错误消息,所以我对问题所在感到困惑。我从这里找到的许多帖子中创建了代码。我自己唯一想知道的是 open 和 write 函数(或任何它们被调用的函数)在脚本中的顺序是否正确。也许原因是完全不同的。
基本上,我要做的是让脚本为其各自文件夹中的每个域创建一个“配置”php 文件。所有配置文件之间的唯一区别是 domainid 字段。
数据库中的表被命名为域。这些字段是 domainid ,它是一个唯一的数字;域,其中包含域名 - 例如domain.com - 用作域文件夹;和域组,用作“类别”文件夹。
出于安全考虑,我更改了所有值,但数据库连接工作正常。
<?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()只返回一行。 -
请不要使用
mysql_*函数编写新代码。它们不再维护,社区已经开始deprecation process。看到red box?相反,您应该了解prepared statements 并使用PDO 或MySQLi。如果你不能决定哪一个,this article 会帮助你。如果你选择 PDO,here is good tutorial。另见Why shouldn't I use mysql functions in PHP?
标签: php for-loop fwrite fclose