-3

I am getting an error while running this code:

Fatal error: Call to a member function bindParam() on boolean in D:\xampp\htdocs\ipack\insertstatus.php on line 9

<?php

    header('Access-Control-Allow-Origin: *');
    include 'dbconnection.php';
    $jobno = "AFE/0001/2015";
    $jobseq = 0;
    //to get INTJOBNO
    $intjobno = "";
    $data = $dbh->query("select INTJOBNO from PRTJOBHD where JOBNO = :jobno and JOBSEQ = :jobseq");
    $data->bindParam(':jobno',$jobno,PDO::PARAM_STR);
    $data->bindParam(':jobseq',$jobseq,PDO::PARAM_STR);
    $data->execute();
    foreach($data as $row) {
         $intjobno = $row['INTJOBNO'];
         echo $intjobno;      
    }
>
Rizier123
  • 58,877
  • 16
  • 101
  • 156
Vipin KA
  • 33
  • 1
  • 12

2 Answers2

0

PDO::query() returns a PDOStatement object, or FALSE on failure.

Source

It means your query has failed for some reason.

In this case you are using the wrong function to do what you want to do.


You need to prepare your statement since you want to bind two parameters in your query.

Use $dbh->prepare() instead of $dbh->query().

GiamPy
  • 3,543
  • 3
  • 30
  • 51
0

Have a look at this answer: PDO's query vs execute. You cannot bind parameters to PDO query, you need to use prepare instead.

header('Access-Control-Allow-Origin: *');
include 'dbconnection.php';
$jobno = "AFE/0001/2015";
$jobseq = 0;
//to get INTJOBNO
$intjobno = "";
$data = $dbh->prepare("select INTJOBNO from PRTJOBHD where JOBNO = :jobno and JOBSEQ = :jobseq");
$data->bindParam(':jobno',$jobno,PDO::PARAM_STR);
$data->bindParam(':jobseq',$jobseq,PDO::PARAM_STR);
$data->execute();
foreach($data as $row) {
     $intjobno = $row['INTJOBNO'];
     echo $intjobno;      
}
Community
  • 1
  • 1
P.Yntema
  • 576
  • 2
  • 9
  • 29