You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP创建新.php文件时提示Undefined variable: conn错误

解决PHP生成文件时的Undefined Variable警告问题

这个问题很常见,我来帮你快速搞定!

错误原因

你看到的Notice: Undefined variable: conn,根源出在双引号字符串的变量解析特性上:PHP会自动解析双引号包裹的字符串里的变量。你的代码里:

$txt = "<?php $conn=mysqli_connect('localhost', 'root', '', 'crm'); ... ?>";

这里面的$conn会被PHP当作当前脚本里的变量去查找,但你根本没定义过这个变量,所以触发了警告。更糟的是,生成的koneksi.php文件里,$conn会变成空值,导致代码变成<?php =mysqli_connect(...); ?>,完全没法用!

三种可行解决方案

方案1:转义双引号里的$符号

在$conn前面加反斜杠\,告诉PHP不要解析这个变量,把它当作普通字符串写入:

<?php 
$myfile = fopen("koneksi.php", "w") or die("Unable to open file!"); 
$txt = "<?php \$conn=mysqli_connect('localhost', 'root', '', 'crm'); date_default_timezone_set('Asia/Jakarta'); ?>"; 
fwrite($myfile, $txt); 
fclose($myfile); 
?>

方案2:使用单引号包裹整个字符串

单引号里的变量不会被PHP解析,不过要注意字符串内部的单引号需要转义(比如'localhost'要改成\'localhost\'):

<?php 
$myfile = fopen("koneksi.php", "w") or die("Unable to open file!"); 
$txt = '<?php $conn=mysqli_connect(\'localhost\', \'root\', \'\', \'crm\'); date_default_timezone_set(\'Asia/Jakarta\'); ?>'; 
fwrite($myfile, $txt); 
fclose($myfile); 
?>

方案3:使用NOWDOC语法(推荐)

NOWDOC是PHP里专门处理不解析变量的长字符串语法,写法清爽,不需要转义任何符号:

<?php 
$myfile = fopen("koneksi.php", "w") or die("Unable to open file!"); 
$txt = <<<'EOT'
<?php 
$conn=mysqli_connect('localhost', 'root', '', 'crm'); 
date_default_timezone_set('Asia/Jakarta'); 
?>
EOT;
fwrite($myfile, $txt); 
fclose($myfile); 
?>

验证方法

运行修改后的代码后,打开生成的koneksi.php文件,检查内容是否和你预期的一致——应该是完整的数据库连接代码,没有缺失$conn的部分。

内容的提问来源于stack exchange,提问作者M Kahfi Kresnotutuko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:13:02