Re: parameters not working under PDO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





O/H Chris Curvey ??????:
It's quite possible that I'm missing something obvious here. The following code fragment does not return any rows, but if I take out the parameters and replace them with hardcoded strings (enclosed in single quotes), I get the right results.

I've scattered "print" statements throughout, and the query seems to get past execute() OK, it's just not returning anything from the call to fetch()

Am I missing something obvious?

$stmt = $conn->prepare("select t.z from towns t
                        join counties c on t.county_z = c.z
                        where t.me = ?
                        and c.state_z = ?");
if ($stmt->execute($parts)) {
    while ($row = $stmt->fetch()) {
         $town_z = $row['z'];
    }
What is $parts doing ?? You just need execute() and I suppose although not posted that you did construct the object like:
$conn| = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

|A good choice is to tell fetch a way to retrieve your data like this: $town_z = $stmt->fetch(PDO::FETCH_ASSOC);
although I think that it will get both result sets in case you don't define.
} else {
    print $stmt->errorCode();
    print_r($stmt->errorInfo());
}

Thanks in advance!

A better way debug that I know is using exceptions like:
try {
   $sth = $conn->query($query);
   $rs = $sth->fetch();
} catch (Exception $e) {
   print "failed :".$e->getMessage();
}

You can use try {} with almost everything so give it a "try" :-) .

Send us some feed back or post full source if you keep having trouble.

--
Thodoris


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux