【发布时间】:2015-04-18 07:27:12
【问题描述】:
我有一个 SQL 查询,它在执行 web 托管 PhpMyadmin 时运行良好。 但是当我通过 php 代码使用它时,它不会返回任何数据。 等待任何帮助。
SQL 查询:
SELECT
`students`.`name`
, `students`.`fatherName`
, `students`.`motherName`
, `students`.`regNo`
, `course`.`courseName`
, `subject`.`subjectName`
, `subject`.`subjectID`
, `course`.`examRollNo`
, `year`.`yearName`
, `papers`.`paperCode`
FROM
`jnuskenresult`.`course`
INNER JOIN `result`.`students`
ON (`course`.`ID` = `students`.`ID`)
INNER JOIN `result`.`subject`
ON (`subject`.`courseID` = `course`.`courseID`)
INNER JOIN `result`.`year`
ON (`year`.`subjectID` = `subject`.`subjectID`)
INNER JOIN `result`.`papers`
ON (`papers`.`yearID` = `year`.`yearID`)
WHERE (`students`.`regNo` ='ABC-AA-12345'
AND `year`.`yearName` ='Third Year');
这是完美的工作 但是下面的 php PDP 代码不能在同一个数据库上运行。
$data =urldecode(($_GET['appno']));
//$dataSubject =htmlspecialchars(trim($_GET['subject']));
$dataYear =htmlspecialchars($_GET['year']);
$sql="SELECT
`students`.`name`
, `students`.`fatherName`
, `students`.`motherName`
, `students`.`regNo`
, `course`.`courseName`
, `subject`.`subjectName`
, `subject`.`subjectID`
, `course`.`examRollNo`
, `year`.`yearName`
, `papers`.`paperCode`
FROM
`SOMEDBNAME`.`course`
INNER JOIN `SOMEDBNAME`.`students`
ON (`course`.`ID` = `students`.`ID`)
INNER JOIN `SOMEDBNAME`.`subject`
ON (`subject`.`courseID` = `course`.`courseID`)
INNER JOIN `SOMEDBNAME`.`year`
ON (`year`.`subjectID` = `subject`.`subjectID`)
INNER JOIN `SOMEDBNAME`.`papers`
ON (`papers`.`yearID` = `year`.`yearID`)
WHERE (`students`.`regNo` =?
AND `year`.`yearName` =?)";
// we have to tell the PDO that we are going to send values to the query
$stmt = $conn->prepare($sql);
// Now we execute the query passing an array to execute();
$results = $stmt->execute(array($data,$dataYear));
//$results = $stmt->execute(array($data));
// Extract the values from $result
$rows = $stmt->fetchAll();
$error = $stmt->errorInfo();
//echo $error[2];
当我发送一个参数时,其他相同的代码正在工作。 我通过 ajax 调用作为 GET 方法发送两个参数。 感谢您的热心帮助。
【问题讨论】:
-
您好,感谢您的快速回复。它显示“致命错误:调用未定义的方法 PDOStatement::query()”
-
请显示
$data和$datayear的转储 -
是否仍然出现致命错误?
-
您确定要显示完整的代码片段吗?此片段中没有
query()调用,但致命错误提示存在query()