PHP - 未定义的Var - 从MySQL数据库获取值

时间:2012-03-26 08:27:10

标签: php mysql undefined var

我试图创建一个从db中检索值的函数,但我得到的错误var是未定义的。我已经读过你可以将php错误级别设置得更低,但这看起来对我来说是不好的做法。

我试图将de undefined var作为param传递,我试图给它一个标准值。但我似乎不明白这里的概念。

这里是代码:$ Playlist未定义,出现错误的内容打印到屏幕上

function returnPlaylistIndex(){

    $con = mysql_connect("localhost", "user", "pass") or die(mysql_error()); 
    if(!$con){
        mysql_select_db("dbname") or die(mysql_error()); 
        $result = mysql_query("SELECT * FROM dbname limit 1");  
    while($row = mysql_fetch_array($result))
    {
        $PlayList = $row['playlistIndex'];
    }
mysql_close($con);
}
if(isset($Playlist)){
    echo $Playlist."<br />";
    return $Playlist;
} else {
    echo "something went wrong while quering";
}
}

感谢任何帮助

6 个答案:

答案 0 :(得分:3)

由于这个错误,您当前的代码实际上永远不会到处查询数据库:

if(!$con){  // MEANT TO WRITE $con

由于连接始终是好的(否则前一行中有die会停止脚本 - 这实际上会使条件冗余)这种情况总是会失败并且{{1}永远不会被设置。

除此之外,请注意您为变量使用两种不同的命名方式:$PlayList(驼峰大小写)和$PlayList(仅大写首字母)。

那就是说,我仍然不明白为什么你会在这个函数中收到错误消息,因为你实际上正在使用$Playlist进行测试。你能提供实际的错误并指出它出现的界限吗?

答案 1 :(得分:2)

使用$PlayList$Playlist,但不能混用。

变量区分大小写。

答案 2 :(得分:1)

出现了一些错误:

  $result = mysql_query("SELECT * FROM dbname limit 1");  

dbname应为table名称,请检查。确保您的查询返回结果,尝试在控制台上运行。

并在while循环之前初始化$PlayList数组:

喜欢:$PlayList=array();

php变量区分大小写。请检查它们是否应该是相同的情况。

if(isset($PlayList)){
    echo $PlayList."<br />";
    return $PlayList;
} else {
    echo "something went wrong while quering";
}

答案 3 :(得分:0)

你的代码没问题,除了一件事:

if(isset($PlayList)){
    echo $PlayList."<br />";
    return $PlayList;
} else {
    echo "something went wrong while quering";
}

请注意$ PlayList和$ Playlist不相同:)

答案 4 :(得分:0)

只有在DB连接有效时才能进行数据库选择:

$con = mysql_connect("localhost", "user", "pass") or die(mysql_error()); 
if($con !== FALSE) {
  mysql_select_db("dbname") or die(mysql_error());
...

答案 5 :(得分:0)

PHP对变量名称区分大小写,但与函数/方法名称无关。

因为PHP“看到”$PlayList$Playlist为2个差异。

另外,检查$ result是否为有效资源:

$result = mysql_query("SELECT * FROM table_name limit 1");
if( $result )
    while($row = mysql_fetch_array($result))