这个脚本:
<?php
$myfamille=$_POST['myfamille'];
$conn = odbc_connect('sage','<Administrateur>','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="Select F_ARTSTOCK.AR_Ref,AR_Design,AS_QteSto
FROM F_ARTICLE,F_FAMILLE,F_ARTSTOCK
where F_ARTICLE.FA_CodeFamille=F_FAMILLE.FA_CodeFamille
AND F_ARTICLE.AR_Ref=F_ARTSTOCK.AR_Ref
AND F_FAMILLE.FA_CodeFamille='".$myfamille."'
and F_ARTSTOCK.AS_QteSto <> 0";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
while($e=odbc_fetch_object($rs))
{$output[]=$e;}
print(json_encode($output));
?>
给我这个错误:
Notice: Undefined variable: output in C:'wamp'www'articlecbase.php on line 24
请注意,删除此行会使代码正常工作,我不知道问题是什么
AND F_FAMILLE.FA_CodeFamille='".$myfamille."'
我也有一个类似的脚本,但使用 sql 服务器,它工作正常
<?php
$myservername=$_POST['myservername'];
$servername=".''".$myservername;
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$db_name="bijou";
$myfamille=$_POST['myfamille'];
$connectionInfo = array( "Database"=>$db_name, "UID"=>$myusername, "PWD"=>$mypassword);
$conn = sqlsrv_connect( $servername, $connectionInfo);
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="Select F_ARTSTOCK.AR_Ref,AR_Design,AS_QteSto FROM F_Article,F_Famille,F_ARTSTOCK
where F_ARTICLE.FA_CodeFamille=F_FAMILLE.FA_CodeFamille
AND F_ARTICLE.AR_Ref=F_ARTSTOCK.AR_Ref
AND F_FAMILLE.FA_CodeFamille='".$myfamille."' and F_ARTSTOCK.AS_QteSto != .000000";
$rs=sqlsrv_query($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
while($e=sqlsrv_fetch_object($rs))
{ $output[]=$e;}
print(json_encode($output));
?>
ODBC作品也是如此:
<?php
$myusername=$_POST['myusername'];
$conn = odbc_connect($myusername,'<Administrateur>','');
if (!$conn)
{exit("Connection Failed: " . $conn);}
$sql="SELECT FA_CodeFamille AS FA_CodeFamille,FA_Intitule AS FA_Intitule FROM F_FAMILLE";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
while($e=odbc_fetch_object($rs))
{ $output[]=$e;}
print(json_encode($output));
?>
请帮助我。问候
$output = array();
while($e=odbc_fetch_object($rs)) {
$output[] = $e;
}
在我拥有的许多脚本上工作正常请提供任何帮助
PHP 抱怨是因为在使用变量之前没有声明它。
$output = array();
while($e=odbc_fetch_object($rs)) {
$output[] = $e;
}
否则,如果从未进入 while 循环,则不会声明变量,因此当您json_encode($output)
时,output
不存在。
另外,我建议您放弃旧的ODBC方法,转向PDO(或至少是PDOODBC驱动程序)。
此外,您的代码对 SQL 注入开放。 您应该使用预准备语句或正确转义插入到查询中的字符串。 也就是说,您应该研究odbc_prepare
此外,$_POST['key'] 从不保证填充。 您应该始终使用以下内容:
$blah = (isset($_POST['blah'])) ? $_POST['blah'] : null;
或
$blah = (array_key_exists($_POST['blah'])) ? $_POST['blah'] : null;
或者,如果你像我一样特别偏执:
$blah = (array_key_exists($_POST['blah']) && is_string($_POST['blah'])) ? $_POST['blah'] : null;
如果用户让 PHP 将其解析为数组,则在将数组传递给函数时可能会发生错误。 这可能会使PHP不必要地生成通知/错误,所以我喜欢避免这种可能性。
(强制$_GET['test']
为数组的示例是page.php?test[]=blah