函数返回1而不是实际值

时间:2014-05-07 10:17:04

标签: php mysql

$userfetch = "select usr_cns_id from user_canvas where email_id='".$dat['loginID']."' "; 
function cnct($sname,$dbusername,$dbpassword,$databasename)
{
    mysql_connect($sname,$dbusername,$dbpassword,$databasename) or die("COULD NOT CONNECT");
    mysql_select_db($databasename) or die("COULD NOT SELECT DB");
    global $userfetch;
    //echo $sname."".$dbusername."".$dbusername."".$databasename;
    $userfetch_exec = mysql_query($userfetch);

    //$userdetails = array();
    while($udata = mysql_fetch_assoc($userfetch_exec))
    {
        $userdetails = $udata ;
    }

    foreach($userdetails as $ude)
    {
        $udetail = $ude['usr_cns_id'];  
    }

    return $udetail;
}

/ *我第一次调用此函数并且工作正常* /

  $uscanid = cnct($server_name,$Db_user,$Db_pass,$Db_name_ac);

/ *第二次我使用不同的参数值调用此函数,它返回1而不是实际值* /

 $uscanid = cnct($server_name,$Db_user,$Db_pass,$Db_name_comp);

/ *我无法理解哪里出错了,感谢任何帮助* /

2 个答案:

答案 0 :(得分:1)

来自PHP Docs..

  

如果使用相同的参数对mysql_connect()进行第二次调用,   不会建立新链接,而是建立链接标识符   已经打开的链接将被退回。

因此,您需要在$newlink

上将mysql_connect()参数设置为TRUE

喜欢这个..(将现有代码更改为此

mysql_connect($sname,$dbusername,$dbpassword,TRUE);

警告:自mysql_*起,此{(1}})扩展程序已弃用,将来也会被删除。相反,应使用MySQLiPDO_MySQL扩展名的准备好的语句来抵御SQL注入攻击!

答案 1 :(得分:0)

你需要将$ userfetch传递给函数

function cnct($sname,$dbusername,$dbpassword,$databasename, $userfetch)