PHP函数变量需要建议

时间:2013-02-06 19:40:08

标签: php session

我有一个简单的表单,我使用会话变量将数据传递到php页面。我在外部函数页面中有两个函数,但我不能让每个函数中的变量全局工作,除非我在每个特定函数中命名变量。

这是一个我希望有人可以提供帮助的例子。

$dbName = $_SESSION['dataBaseName'];    
$tableName = $_SESSION['tableName'];
$artistName = $_SESSION['artistName'];
$songName = $_SESSION['songName']; 

function table_exists($tableName)
{

if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$tableName."'"))==1) 
{
echo "Table exists <br />";
}
else
{
$sql = "CREATE TABLE songList (songId int NOT NULL AUTO_INCREMENT PRIMARY KEY, artistName varchar(60), songName varchar(25))";
$result= mysql_query($sql) or die(mysql_error());
return $result;
}   
}

在我的OTHER函数中,我把变量INSIDE放在函数中。似乎无论我使用什么组合,我的变量必须重新整理我使用的每个函数。我尝试在前面使用GLOBAL,但这只会导致错误。这是另一个功能:

function tableWrite() 

{

$dbName = $_SESSION['dataBaseName'];    
$tableName = $_SESSION['tableName'];
$artist = $_SESSION['artist'];
$song = $_SESSION['song']; 


 if(!empty($_REQUEST['insert']))
 {
  $sql = "INSERT INTO $tableName (artistName, songName) values ('$artist', '$song')";
  $result = mysql_query($sql) or die(mysql_error());
  $showaresult = mysql_query("SELECT * from $tableName where artistName = '$artist' AND songName= '$song' ") or die("Invalid query: " . mysql_error());
  echo ("New entry added"); 

  $row = mysql_fetch_array($showaresult);
  echo ("<br> Catalog Number = ". $row["songId"] . "<br> Artist Name =  " . $row["artistName"] . "<br>");
  echo("Song Name = " . $row["songName"] . "<br>");

  echo ("<h1> Current Catalog </h1>");

  $showresult = mysql_query("SELECT * from $tableName") or die("Invalid query: " . mysql_error());
  while ($row = mysql_fetch_array($showresult))
  {
   echo ("<br> Catalog Number = ". $row["songId"] . "<br> Artist Name =  " .    $row["artistName"] . "<br>");
  echo("Song Name = " . $row["songName"] . "<br>");

  }

  }
  }

1 个答案:

答案 0 :(得分:0)

您应该将这些数据库访问变量放在不同的php文件中(可能是db_config.php?)。然后,您可以在需要所述变量值的文件中使用require指令。

另外,请勿使用mysql_*个功能。它们已被弃用,取而代之的是PDOMySQLi。这将帮助您编写更好的代码并防止SQL注入vunerabilities。