用户定义的函数在php中不起作用

用户定义的函数在php中不起作用,php,function,pdo,unique-id,Php,Function,Pdo,Unique Id,调用我的rand\u id()函数时出现问题。下面是代码 <?php try { $config=array( 'DB_USERNAME'=>'root', 'DB_PASSWORD'=>''); $conn=new PDO('mysql:host=localhost;dbname=scc',$config['DB_USERNAME'],$config['DB_PASSWORD']); $conn->setAttribute(PDO::ATTR_ERRMODE

调用我的
rand\u id()
函数时出现问题。下面是代码

<?php 
try

{

$config=array(
'DB_USERNAME'=>'root',
'DB_PASSWORD'=>'');


$conn=new PDO('mysql:host=localhost;dbname=scc',$config['DB_USERNAME'],$config['DB_PASSWORD']); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

echo rand_id(); 

}

catch(Exception $e)
{
echo 'error: '.$e->getMessage();
}

function rand_id()
{

$id=rand(100,103);          //i have record with id ='100'
$results=$conn->query("select id from student_personal_info where id='".$id."'");

if($results->rowCount()>0)
{   
rand_id();
}
else
{
return "this is unique id";
}
}
?>        

您的数据库对象
$conn
超出了
rand\u id()
函数的作用域。您可以将其作为参数传递:

function rand_id($conn)
{
    // ...
}
或者使用
global
方法:

function rand_id()
{
    global $conn;
    // $conn is now accessible
}
更多信息


对于将来的调试,请记住检查错误日志。在这种情况下,您应该有如下内容:

致命错误:对中的非对象调用成员函数query()


问题或错误具体是什么?!请用有意义的缩进重新格式化您的代码好吗?尝试将您的函数与查询分开,并使其
返回
一个值,让检查超出函数范围。正在工作。。!!!非常感谢……:)
function rand_id()
{
    global $conn;
    // $conn is now accessible
}