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的变量范围: