使用PHP填充文件的问题

时间:2012-08-23 16:18:17

标签: php

基本上我的问题是下一个...以下脚本连接数据库并创建一个文件....一切正常..除了它填充文件时...它不会放置变量{ {1}},$username$password$server到文件中。 创建的文件看起来像这样

$dbname

但它应该在引号内有一些东西:S

我的脚本如下

<?php

    // Database Constants
    $DB_SERVER ="";
    $DB_USER ="";
    $DB_PASS ="";
    $DB_NAME ="";
    ?>

4 个答案:

答案 0 :(得分:3)

您的变量$username$password,...不是全局变量。它们不在函数范围内。您需要将这些变量传递给函数。

或使用global关键字:

function createfile ($dbFile) {
  global $server;
  global $username;
  global $password;
  global $dbname;
  ...

但请注意,过度使用global是非常糟糕的做法。

答案 1 :(得分:1)

您没有将$server, $username, $password, $dbname传递给该功能。

尝试

function createfile($dbfile,$params)
{
   list($server,$username,$password,$dbname) = $params;
   /* ... */
}

/* ... */

if (createfile($dbFile,array($server,$username,$pasword,$dbname)))

答案 2 :(得分:1)

你需要转换:

function createfile ($dbFile) {
        //Creates File and populates it.

到此:

function createfile ($dbFile) {
        global $username, $password, $server, $dbname; 
        //Creates File and populates it.

或者这个:

function createfile ($dbFile, $username, $password, $server, $dbname) {
        //Creates File and populates it.

自然在最后一种情况下你的电话会变成:

createfile ($dbFile, $username, $password, $server, $dbname);

答案 3 :(得分:0)

您需要使用global关键字引用全局变量:

function createfile ($dbFile) {
    global $username, $password, $server, $dbname;

或明确地将它们传递给createfile

function createfile ($dbFile, $username, $password, $server, $dbname) {

/* ... */

if (createfile($dbFile, $username, $password, $server, $dbname)) {