Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询在函数中工作_Php - Fatal编程技术网

Php 查询在函数中工作

Php 查询在函数中工作,php,Php,我在函数中有以下代码: function verifica($soph,$ano) { $sql_ver = "SELECT * FROM ativEns WHERE Sophia_ID = ".$soph." and AnoLetivo =".$ano.""; $lista_ver = sqlsrv_query($ligarBD,$sql_ver); $result_ver = sqlsrv_fetch_array($lista_ver);

我在函数中有以下代码:

function verifica($soph,$ano)
{

        $sql_ver = "SELECT * FROM ativEns WHERE Sophia_ID = ".$soph." and AnoLetivo =".$ano."";
        $lista_ver = sqlsrv_query($ligarBD,$sql_ver);
        $result_ver = sqlsrv_fetch_array($lista_ver);

        if (!$result_ver)
        {
            echo "Nothing.";
        }
        else
        {
            echo $result_ver["desc"];
        }


}
$temp_ver = substr($anoatual,0,4) . substr($anoatual,5,4);

verifica($sophia,$temp_ver);
要调用该函数,请执行以下操作:

function verifica($soph,$ano)
{

        $sql_ver = "SELECT * FROM ativEns WHERE Sophia_ID = ".$soph." and AnoLetivo =".$ano."";
        $lista_ver = sqlsrv_query($ligarBD,$sql_ver);
        $result_ver = sqlsrv_fetch_array($lista_ver);

        if (!$result_ver)
        {
            echo "Nothing.";
        }
        else
        {
            echo $result_ver["desc"];
        }


}
$temp_ver = substr($anoatual,0,4) . substr($anoatual,5,4);

verifica($sophia,$temp_ver);

如果不是在函数内部,它工作得很好,但是当我把它放在函数中时,它只是回显“Nothing”

$sophia
在函数内部没有定义,所以

$sql_ver = "SELECT * FROM ativEns WHERE Sophia_ID = ".$sophia." and AnoLetivo =".$temp_ver."";
正在生成一个如下所示的查询

SELECT ... WHERE Sophia_ID = and
                            ^-----due to undefined variable.

也许它应该只是
$soph
,以匹配函数定义中的参数?

您是否也定义了
$sophia
$ligarBD
在您的函数中不可用。是的,我复制错了,就像您说的,但仍然不起作用。也许AnoLetivo是一个字符串?因此,查询应该是:
$sql\u ver=“SELECT*FROM ativEns,其中Sophia\u ID={$Sophia}和AnoLetivo='{$temp\u ver}'?那
$ligarBD
呢?这也是未定义的。是的,文件中有一个include,正如我说的,它在函数中不起作用。确切地说。您需要了解PHP的变量范围: