Php 在某些用户定义函数中执行mysqli_查询后出错
带有一个方法getField的getUserName.php文件的内容:Php 在某些用户定义函数中执行mysqli_查询后出错,php,mysqli,Php,Mysqli,带有一个方法getField的getUserName.php文件的内容: <?php function getfield($field) { if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id'])) { $query="SELECT `$field` FROM `user` WHERE `id`='".$_SESSION['user_id']."'"; if($query_run=
<?php
function getfield($field)
{
if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id']))
{
$query="SELECT `$field` FROM `user` WHERE `id`='".$_SESSION['user_id']."'";
if($query_run=mysqli_query($conn,$query))
{
if($query_result=mysqli_fetch_field($query_run))
{
return $query_result;
}
} else {
printf("error: %s\n", mysqli_error($conn));
}
}
?>
$conn
未在getfield($field)
的本地范围中定义。您需要将其作为参数发送:
$fname=getfield($conn, 'Fname');
$lname=getfield($conn, 'Lname');
function getfield($conn, $field) {
...
变量$conn
在getfield
函数的作用域中不可用
在函数中声明为全局应该可以做到以下几点:
<?php
function getfield($field)
{
global $conn;
if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id']))
{
$query="SELECT `$field` FROM `user` WHERE `id`='".$_SESSION['user_id']."'";
if($query_run=mysqli_query($conn,$query))
{
if($query_result=mysqli_fetch_field($query_run))
{
return $query_result;
}
}
else
{
printf("error: %s\n", mysqli_error($conn));
}
}
}
?>
确保$conn
不为空。Noep!不工作。。。我收到了另一个错误,如:“可捕获致命错误:mysqli类的对象无法在第7行的/home/confessi/public_html/college/profile/function.php中转换为字符串”第7行=函数中的$query行。php@style是的,对不起。我编辑。
<?php
function getfield($field)
{
global $conn;
if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id']))
{
$query="SELECT `$field` FROM `user` WHERE `id`='".$_SESSION['user_id']."'";
if($query_run=mysqli_query($conn,$query))
{
if($query_result=mysqli_fetch_field($query_run))
{
return $query_result;
}
}
else
{
printf("error: %s\n", mysqli_error($conn));
}
}
}
?>