Re: parameters not working under PDO
| From: | Thodoris | Date: | Wed, 31 Oct 2007 18:58:28 +0000 |
| Subject: | Re: parameters not working under PDO | ||
| References: | 1 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-44279@lists.php.net to get a copy of this message | ||
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$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.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:
} 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