我正在尝试创建一个从数据库中检索值的函数,但我得到的错误是var is undefined。我读到过你可以将php的错误级别设置得更低,但在我看来这不是一个好的做法。
我试着把未定义的变量作为参数传递,我试着给它一个标准值。但我似乎不理解这里的概念。
代码是这样的:$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";
}
}任何帮助我们都将不胜感激
发布于 2012-03-26 16:32:00
由于这个拼写错误,您当前的代码实际上永远不会去查询数据库:
if(!$con){ // MEANT TO WRITE $con由于连接总是良好的(否则,前一行中的die将停止脚本--这实际上使条件变得冗余),所以此条件将始终失败,并且$PlayList将永远不会被设置。
除此之外,请注意您对变量使用了两种不同的命名样式:$PlayList (驼峰式大小写)和$Playlist (仅大写第一个字母)。
也就是说,我仍然不理解为什么在这个函数中会出现错误消息,因为您实际上是在使用isset进行测试。你能提供实际的错误并指出它发生的那一行吗?
发布于 2012-03-26 16:32:32
使用$PlayList或$Playlist,但不能混合使用。
变量区分大小写。
发布于 2012-03-26 16:31:29
以下内容似乎有问题:
$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";
}https://stackoverflow.com/questions/9868815
复制相似问题