我试图创建一个从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";
}
}
感谢任何帮助
答案 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))