Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:49101 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 51232 invoked from network); 20 Jul 2010 20:30:52 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Jul 2010 20:30:52 -0000 Authentication-Results: pb1.pair.com smtp.mail=jonah.harris@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=jonah.harris@gmail.com; sender-id=pass; domainkeys=bad Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.54 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: jonah.harris@gmail.com X-Host-Fingerprint: 74.125.82.54 mail-ww0-f54.google.com Received: from [74.125.82.54] ([74.125.82.54:53403] helo=mail-ww0-f54.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 7F/40-49222-B77064C4 for ; Tue, 20 Jul 2010 16:30:51 -0400 Received: by wwb18 with SMTP id 18so250572wwb.11 for ; Tue, 20 Jul 2010 13:30:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=piokNAcN5nw0RtnsTwC+XeiEkpVnY0VAI1DBRjyt6m8=; b=OrifendLqmlYJvcbWQT57MO/wc9bd2GeCchFKf9U8d8jh+k/9D0EQg4134urbFQS51 sP4kl/Bu7VBs+zGz2W+ZldmzsIGxrAW5EBMWfVIOAxQEhm3qm5FkukYW3139Kxaa2YKs kKpS/88/TXfdLho6RSuWYnRCtisS27usEzQdo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=Ow/XxJPLhngBehZ7+oDGF8xEtoiiogkH8MwUBMXMoS0aM4Bl2OQmfxtqR5BbmlSYrB fiuMZ8fOyWrFEgmUc3mBk3YhusRFxB1tmvLOzbG3Fj4hsQSpawkBuqUT1bY2R8qabgj8 DqB77GgNtRXhmK5lWKRaj2u23wr/dyuQ7tLnI= MIME-Version: 1.0 Received: by 10.227.156.21 with SMTP id u21mr6076514wbw.56.1279657847758; Tue, 20 Jul 2010 13:30:47 -0700 (PDT) Received: by 10.216.156.139 with HTTP; Tue, 20 Jul 2010 13:30:47 -0700 (PDT) Date: Tue, 20 Jul 2010 16:30:47 -0400 Message-ID: To: PHP Developers Mailing List Content-Type: multipart/mixed; boundary=0016367fbb6b732217048bd78ff2 Subject: [PATCH]: Fix for PDOStatement::debugDumpParams() From: jonah.harris@gmail.com ("Jonah H. Harris") --0016367fbb6b732217048bd78ff2 Content-Type: multipart/alternative; boundary=0016367fbb6b73220d048bd78ff0 --0016367fbb6b73220d048bd78ff0 Content-Type: text/plain; charset=ISO-8859-1 Per the documentation ( http://php.net/manual/en/pdostatement.debugdumpparams.php), PDOStatement::debugDumpParams should be emitting the bind parameter value. Currently however, it does not. Accordingly, attached is a patch for 5.2 (which also applies cleanly to 5.3), which emits the bind parameter value. While there are quite a few different ways to print and/or get a printable version of the zval without having to convert the parameter to a string in-place, I felt that zend_make_printable_zval was the most appropriate. Feel free to correct me though ;-) Also, the first example in the documentation is incorrect, as bindValue can take at most three arguments. In the example: $sth->bindValue(':colour', $colour, PDO::PARAM_STR, 12); should be: $sth->bindValue(':colour', $colour, PDO::PARAM_STR); -- Jonah H. Harris, VP of Database Administration myYearbook.com --0016367fbb6b73220d048bd78ff0 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Per the documentation (http://php.net/manual/en/pdostatement.debugdumpparams.php= ), PDOStatement::debugDumpParams should be emitting the bind parameter = value.=A0 Currently however, it does not.=A0 Accordingly, attached is a pat= ch for 5.2 (which also applies cleanly to 5.3), which emits the bind parame= ter value.

While there are quite a few different ways to print and/or get a printa= ble version of the zval without having to convert the parameter to a string= in-place, I felt that zend_make_printable_zval was the most appropriate.= =A0 Feel free to correct me though ;-)

Also, the first example in the documentation is incorrect, as bindValue= can take at most three arguments.

In the example:

$sth->b= indValue(':colour', $colour, PDO::PARAM_STR, 12);

should be:=

$sth->bindValue(':colour', $colour, PDO::PARAM_STR);


--
Jonah H. Harris, VP of Database Administration=
myYearbook.com

--0016367fbb6b73220d048bd78ff0-- --0016367fbb6b732217048bd78ff2 Content-Type: text/plain; charset=US-ASCII; name="pdo_debugDumpParams_p2.txt" Content-Disposition: attachment; filename="pdo_debugDumpParams_p2.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gbv70m7n0 ZGlmZiAtY3IgcGhwNS4yLTIwMTAwNzIwMTQzMC9leHQvcGRvL3Bkb19zdG10LmMgcGhwNS4yLTIw MTAwNzIwMTQzMC1wZG9maXgvZXh0L3Bkby9wZG9fc3RtdC5jCioqKiBwaHA1LjItMjAxMDA3MjAx NDMwL2V4dC9wZG8vcGRvX3N0bXQuYwkyMDEwLTA2LTE2IDIwOjQxOjIzLjAwMDAwMDAwMCAtMDQw MAotLS0gcGhwNS4yLTIwMTAwNzIwMTQzMC1wZG9maXgvZXh0L3Bkby9wZG9fc3RtdC5jCTIwMTAt MDctMjAgMTY6MTY6NDYuMTQ0NDQ2NDcyIC0wNDAwCioqKioqKioqKioqKioqKgoqKiogMjE2Nywy MTgzICoqKioKICAJCVJFVFVSTl9GQUxTRTsKICAJfQogIAkKISAJcGhwX3N0cmVhbV9wcmludGYo b3V0IFRTUk1MU19DQywgIlNRTDogWyVkXSAlLipzXG4iLAogIAkJc3RtdC0+cXVlcnlfc3RyaW5n bGVuLAogIAkJc3RtdC0+cXVlcnlfc3RyaW5nbGVuLCBzdG10LT5xdWVyeV9zdHJpbmcpOwogIAoh IAlwaHBfc3RyZWFtX3ByaW50ZihvdXQgVFNSTUxTX0NDLCAiUGFyYW1zOiAgJWRcbiIsCiAgCQlz dG10LT5ib3VuZF9wYXJhbXMgPyB6ZW5kX2hhc2hfbnVtX2VsZW1lbnRzKHN0bXQtPmJvdW5kX3Bh cmFtcykgOiAwKTsKICAJCiAgCWlmIChzdG10LT5ib3VuZF9wYXJhbXMpIHsKICAJCXplbmRfaGFz aF9pbnRlcm5hbF9wb2ludGVyX3Jlc2V0X2V4KHN0bXQtPmJvdW5kX3BhcmFtcywgJnBvcyk7CiAg CQl3aGlsZSAoU1VDQ0VTUyA9PSB6ZW5kX2hhc2hfZ2V0X2N1cnJlbnRfZGF0YV9leChzdG10LT5i b3VuZF9wYXJhbXMsCiAgCQkJCSh2b2lkKiopJnBhcmFtLCAmcG9zKSkgewogIAkJCWNoYXIgKnN0 cjsKICAJCQl1aW50IGxlbjsKICAJCQl1bG9uZyBudW07Ci0tLSAyMTY3LDIxODUgLS0tLQogIAkJ UkVUVVJOX0ZBTFNFOwogIAl9CiAgCQohIAlwaHBfc3RyZWFtX3ByaW50ZihvdXQgVFNSTUxTX0ND LCAiU1FMICAgOiBbbGVuID0gJWRdICUuKnNcbiIsCiAgCQlzdG10LT5xdWVyeV9zdHJpbmdsZW4s CiAgCQlzdG10LT5xdWVyeV9zdHJpbmdsZW4sIHN0bXQtPnF1ZXJ5X3N0cmluZyk7CiAgCiEgCXBo cF9zdHJlYW1fcHJpbnRmKG91dCBUU1JNTFNfQ0MsICJQYXJhbXM6ICVkXG4iLAogIAkJc3RtdC0+ Ym91bmRfcGFyYW1zID8gemVuZF9oYXNoX251bV9lbGVtZW50cyhzdG10LT5ib3VuZF9wYXJhbXMp IDogMCk7CiAgCQogIAlpZiAoc3RtdC0+Ym91bmRfcGFyYW1zKSB7CiAgCQl6ZW5kX2hhc2hfaW50 ZXJuYWxfcG9pbnRlcl9yZXNldF9leChzdG10LT5ib3VuZF9wYXJhbXMsICZwb3MpOwogIAkJd2hp bGUgKFNVQ0NFU1MgPT0gemVuZF9oYXNoX2dldF9jdXJyZW50X2RhdGFfZXgoc3RtdC0+Ym91bmRf cGFyYW1zLAogIAkJCQkodm9pZCoqKSZwYXJhbSwgJnBvcykpIHsKKyAJCQl6dmFsIHBhcmFtX2Nv cHk7CisgCQkJaW50IHVzZV9jb3B5OwogIAkJCWNoYXIgKnN0cjsKICAJCQl1aW50IGxlbjsKICAJ CQl1bG9uZyBudW07CioqKioqKioqKioqKioqKgoqKiogMjE4OCwyMTk4ICoqKioKICAJCQkJcGhw X3N0cmVhbV9wcmludGYob3V0IFRTUk1MU19DQywgIktleTogTmFtZTogWyVkXSAlLipzXG4iLCBs ZW4sIGxlbiwgc3RyKTsKICAJCQl9CiAgCiEgCQkJcGhwX3N0cmVhbV9wcmludGYob3V0IFRTUk1M U19DQywgInBhcmFtbm89JWRcbm5hbWU9WyVkXSBcIiUuKnNcIlxuaXNfcGFyYW09JWRcbnBhcmFt X3R5cGU9JWRcbiIsCiAgCQkJCXBhcmFtLT5wYXJhbW5vLCBwYXJhbS0+bmFtZWxlbiwgcGFyYW0t Pm5hbWVsZW4sIHBhcmFtLT5uYW1lID8gcGFyYW0tPm5hbWUgOiAiIiwKICAJCQkJcGFyYW0tPmlz X3BhcmFtLAohIAkJCQlwYXJhbS0+cGFyYW1fdHlwZSk7CiAgCQkJCiAgCQkJemVuZF9oYXNoX21v dmVfZm9yd2FyZF9leChzdG10LT5ib3VuZF9wYXJhbXMsICZwb3MpOwogIAkJfQogIAl9Ci0tLSAy MTkwLDIyMTQgLS0tLQogIAkJCQlwaHBfc3RyZWFtX3ByaW50ZihvdXQgVFNSTUxTX0NDLCAiS2V5 OiBOYW1lOiBbJWRdICUuKnNcbiIsIGxlbiwgbGVuLCBzdHIpOwogIAkJCX0KICAKISAJCQkvKgoh IAkJCSAqIE1ha2UgdGhlIHBhcmFtZXRlciB2YWx1ZSBwcmludGFibGUuICBXaGlsZSB0aGVyZSBh cmUgYSBmZXcgZGlmZmVyZW50CiEgCQkJICogd2F5cyB0byBkbyB0aGlzLCB0aGlzIHNlZW1zIHNp bXBsZXN0IGZvciB3aGF0IHdlIHdhbnQuCiEgCQkJICovCiEgCQkJemVuZF9tYWtlX3ByaW50YWJs ZV96dmFsKHBhcmFtLT5wYXJhbWV0ZXIsICZwYXJhbV9jb3B5LCAmdXNlX2NvcHkpOwohIAohIAkJ CXBocF9zdHJlYW1fcHJpbnRmKG91dCBUU1JNTFNfQ0MsICJwYXJhbW5vPSVkXG5uYW1lPVslZF0g XCIlLipzXCJcbmlzX3BhcmFtPSVkXG5wYXJhbV90eXBlPSVkXG52YWx1ZT0lc1xuIiwKICAJCQkJ cGFyYW0tPnBhcmFtbm8sIHBhcmFtLT5uYW1lbGVuLCBwYXJhbS0+bmFtZWxlbiwgcGFyYW0tPm5h bWUgPyBwYXJhbS0+bmFtZSA6ICIiLAogIAkJCQlwYXJhbS0+aXNfcGFyYW0sCiEgCQkJCXBhcmFt LT5wYXJhbV90eXBlLAohIAkJCQkoWl9UWVBFX1AocGFyYW0tPnBhcmFtZXRlcikgPT0gSVNfTlVM TCkKISAJCQkJCT8gIk5VTEwiCiEgCQkJCQk6ICh1c2VfY29weSkgPyBaX1NUUlZBTF9QKCZwYXJh bV9jb3B5KQohIAkJCQkJCQkJIDogWl9TVFJWQUxfUChwYXJhbS0+cGFyYW1ldGVyKSk7CiAgCQkJ CisgCQkJaWYgKHVzZV9jb3B5KSB7CisgCQkJCXp2YWxfZHRvcigmcGFyYW1fY29weSk7CisgCQkJ fQorIAogIAkJCXplbmRfaGFzaF9tb3ZlX2ZvcndhcmRfZXgoc3RtdC0+Ym91bmRfcGFyYW1zLCAm cG9zKTsKICAJCX0KICAJfQoK --0016367fbb6b732217048bd78ff2--