我试图为我的应用创建安装向导。在其中一个步骤之一中,我试图编写/存储用户连接详细信息到文件。有人知道这样做的更好方法吗?当我的代码达到$符号时,我的代码显然会破裂。
$myFile = "../functions/config2.php";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "<? #DATABASE CONNECTIONSn";
fwrite($fh, $stringData);
$stringData = "$dbservertype='mysql';n";
fwrite($fh, $stringData);
$stringData = "$servername='".$_POST['host']."';n";
fwrite($fh, $stringData);
$stringData = "$dbusername='".$_POST['dbusername']."';n";
fwrite($fh, $stringData);
$stringData = "$dbpassword='".$_POST['dbpass']."';n";
fwrite($fh, $stringData);
$stringData = "$dbname='".$_POST['dbname']."';n";
fwrite($fh, $stringData);
$stringData = "global $link;n";
fwrite($fh, $stringData);
$stringData = "$link=mysql_connect ('$servername','$dbusername','$dbpassword');n";
fwrite($fh, $stringData);
$stringData = "if(!$link){die('Could not connect to MySQL');}n";
fwrite($fh, $stringData);
$stringData = "mysql_select_db('$dbname',$link) or die ('could not open db'.mysql_error());n";
fwrite($fh, $stringData);
fclose($fh);
我希望书面文件最终看起来像这样的东西
<?
//DATABASE CONNECTIONS
$dbservertype='mysql';
$servername='posted_server';
$dbusername='posted_user';
$dbpassword='posted_pass';
$dbname='posted_dbname';
global $link;
$link=mysql_connect ("$servername","$dbusername","$dbpassword");
if(!$link){die("Could not connect to MySQL");}
mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
?>
我的输出现在看起来像这样
<? #DATABASE CONNECTIONS
='mysql';
='host';
='user';
='pass';
='dbname';
global ;
=mysql_connect ('','','');
if(!){die('Could not connect to MySQL');}
mysql_select_db('',) or die ('could not open db'.mysql_error());
您正在使用双引号"在PHP中,如果您在双引号中包括有效变量名称的内容,则PHP将插值该变量,并且如果它不存在,则它将无法解决或丢弃错误。请参阅此处
您应该逃脱$标志:
$stringData = "$dbservertype='mysql';n";