I am relatively new to PHP (about 3 weeks) and I'm actually doing quite well with it. The problem i have is the following
odbc_exec(): SQL error: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1., SQL state 07001 in SQLExecDirect in C:\Apache2\htdocs\Project4\Demo.php on line 33
This is the code that i am trying to run:
function runSQLScript($scriptToRun, $val){
$conn=odbc_connect('ProjectTestDbase','','');
(!$conn) ? exit("Connection Failed: " . $conn) : (print '');
switch($scriptToRun){
case 1:
$temp = array();
$x = 0;
$sql ="SELECT Year FROM Year ORDER BY Year DESC";
$rs=odbc_exec($conn,$sql);
!($rs) ? exit("Error in SQL") : (print'');
$field = "Year";
break;
case 2:
$temp = array();
$x = 0;
$sql ="SELECT Model.Model FROM [Year] INNER JOIN Model ON Year.yearID = Model.yearID WHERE Year.Year=$val";
$rs=odbc_exec($conn, $sql);
!($rs) ? exit("Error in SQL") : (print'');
$field = "Model";
break;
case 3:
$temp = array();
$x = 0;
$sql ="SELECT Range.Range FROM Model INNER JOIN Range ON Model.modelID = Range.modelID WHERE Model.Model=$val";
$rs=odbc_exec($conn, $sql);
!($rs) ? exit("Error in SQL") : (print'');
$field = "Range";
break;
case 4:
$temp = array();
$x = 0;
$sql ="SELECT Chassis.Chassis FROM [Year] INNER JOIN ((Model INNER JOIN Range ON Model.modelID = Range.modelID) INNER JOIN (Chassis INNER JOIN RangeChassis ON Chassis.chassisID = RangeChassis.chassisID) ON Range.rangeID = RangeChassis.rangeID) ON Year.yearID = Model.yearID WHERE (((Range.Range)=$selectedRange) AND ((Model.Model)=$selectedModel) AND ((Year.Year)=$val))";
$rs=odbc_exec($conn, $sql);
!($rs) ? exit("Error in SQL") : (print'');
$field = "Chassis";
break;
default : break;
}
while (odbc_fetch_row($rs)){
$temp[$x]=odbc_result($rs, $field);
$x++;
}
odbc_close($conn);
return $temp;
}
The first 2 cases run perfectly well but the third one causes the problem.
Can any one give me a clue to rectifying this?
Thanx in advance