初学PHP问题 - 从函数访问数据

a1a*_*anm 0 php

我有这个功能:

function selectValue($test) {
    $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE);
    $query = "SELECT * FROM table where value = '$test'";
    $results = @mysql_query($query, $connection);   
    $value = mysql_fetch_assoc($results);
}

selectValue('abcde');

echo $value['something'];
Run Code Online (Sandbox Code Playgroud)

这导致$ value成为一个数组.我想从函数外部访问这个数组.我尝试使用上面的最后一行代码(即echo ...)来做到这一点,但这不起作用.我该怎么做?

Mik*_*ike 7

您需要从函数返回一个值:

function selectValue($test) {
    $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE);
    $query = "SELECT * FROM pans where value = '$test'";
    $results = @mysql_query($query, $connection);   
    $value = mysql_fetch_assoc($results);
    return $value;
}


$value = selectValue('abcde');

echo $value['something'];
Run Code Online (Sandbox Code Playgroud)

请注意,该函数可能会在各个位置失败,因此您不应总是假设返回值将包含结果mysql_fetch_assoc.

一种方法(多种方式之一)是在使用之前测试返回值:

function selectValue($test) {
    $value = false;
    $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE);
    $query = "SELECT * FROM pans where value = '$test'";
    $results = @mysql_query($query, $connection);   
    $value = mysql_fetch_assoc($results);
    return $value;
}    

if($value = selectValue('abcde')) {
    echo $value['something'];
} else {
    echo "Something went wrong.\n";
}
Run Code Online (Sandbox Code Playgroud)

异常处理是处理错误的另一种方法.