php - 对 ODBC 查找表的 PHP 代码进行故障排除
问题描述
以下 PHP 代码是由 Oracle ODBC 查找表的开发人员编写的,虽然我可以找出 SQL,但我无法判断 PHP 代码在查找表 4 中做错了什么,因为我几乎没有 PHP 方面的专业知识
$emplid= $_REQUEST['emplid'];
//$emplid= $_GET['emplid'];
$connect = odbc_connect("datamart_64", "cchung", "npstempchienli");
if( $connect === false ) {
echo "Unable to connect.</br>";
# die( print_r( sqlsrv_errors(), true));
}
# query the users table for name and surname
$query = "SELECT OPRID || '@nps.k12.nj.us' Manager_Email FROM PSOPRDEFN@PEOPLESOFT WHERE EMPLID = ( ";
$query .= "SELECT EMPLID FROM PS_JOB@PEOPLESOFT PJ2 WHERE POSITION_NBR = ( ";
$query .= "SELECT REPORTS_TO FROM PS_JOB@PEOPLESOFT PJ WHERE EMPLID='" . $emplid . "' AND EFFDT = (SELECT MAX(EFFDT) FROM PS_JOB@PEOPLESOFT WHERE EMPLID=PJ.EMPLID)) ";
$query .= "AND EFFDT = (SELECT MAX(EFFDT) FROM PS_JOB@PEOPLESOFT WHERE POSITION_NBR=PJ2.POSITION_NBR) ";
$query .= ")";
# perform the query
$result = odbc_exec($connect, $query);
if( $result === false ) {
echo "Error in executing query.</br>";
# die( print_r( sqlsrv_errors(), true));
}
while($myRow = odbc_fetch_array($result)){
$rows[] = $myRow;
};
echo '{';
$last_key = end(array_keys($rows[0]));
foreach($rows[0] as $key => $value) {
if ($key == $last_key) {
echo '"' . $key . '":"'. $value . '"';
} else {
echo '"' . $key . '":"'. $value .'", ';
}
}
echo '} ';
# close the connection
odbc_close($connect);
如果 PS 数据库中没有为查询的员工分配主管,则“报告给”字段默认为系统中每日津贴员工的同一人的姓名,就好像它是硬编码的一样。但是代码中没有任何建议。sql 代码对数据库正常工作,并让我得到正确的结果。因此我认为 PHP 代码有问题,这就是我需要一个 PHP 编码器来帮助解决这个问题的地方。PHP 中的 if else 语句中是否有某些内容默认为名为“keith barton”的员工,因为我看不到?
解决方案
推荐阅读
- ios - RxSwift:点击一个按钮用 Alamofire 发出请求,如何使它工作?
- python - 我如何通过一个类的值
- wordpress - 为什么我的网站没有被谷歌抓取(我的网站在根文件夹的目录中)
- php - Laravel Voyager:如何将 UI 功能添加到后端/CMS Voyager
- ios - 升级到 iOS 13.2.2 后 UIImage.Orientation 总是返回 Up
- prism - ShowDialog 不在 xamarin 中使用 Prism 在 DetailPage 中呈现:
- itunes - 标记应用程序以便 Spotlight 正确显示它们?“itunes”在 macOS Catalina 上建议“播客”
- php - PHP Order array by multiple elements - 基于日期和时间的排序
- javascript - 如何在 Laravel 中访问 .js 中的配置数据(不在刀片中)
- java - Spring Data Rest 中的多列“OR”与 QueryDsl