note 118156 added to pdo.exec
| From: | calin at NOSPAM dot softped dot com | Date: | Fri, 16 Oct 2015 11:20:25 +0000 |
| Subject: | note 118156 added to pdo.exec | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-203968@lists.php.net to get a copy of this message | ||
PDO::eval() might return
false for some statements (e.g. CREATE TABLE) even if the
operation completed successfully, when using PDO_DBLIB and FreeTDS. So it is not a reliable way of
testing the op status.
PDO::errorInfo() can be used to test the SQLSTATE error code for '00000' (success) and
'01000' (success with warning).
<?php
function execute(PDO $conn, $sql) {
$affected = $conn->exec($sql);
if ($affected === false) {
$err = $conn->errorInfo();
if ($err[0] === '00000' || $err[0] === '01000') {
return true;
}
}
return $affected;
}
?>
PDO::errorInfo(): http://php.net/manual/en/pdo.errorinfo.php
List of SQLSTATE Codes: http://www-01.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.sqls.doc/ids_sqs_0809.htm
----
Server IP: 72.52.91.14
Probable Submitter: 188.27.49.197
----
Manual Page -- http://php.net/manual/en/pdo.exec.php
Edit -- https://master.php.net/note/edit/118156
Del: integrated -- https://master.php.net/note/delete/118156/integrated
Del: useless -- https://master.php.net/note/delete/118156/useless
Del: bad code -- https://master.php.net/note/delete/118156/bad+code
Del: spam -- https://master.php.net/note/delete/118156/spam
Del: non-english -- https://master.php.net/note/delete/118156/non-english
Del: in docs -- https://master.php.net/note/delete/118156/in+docs
Del: other reasons-- https://master.php.net/note/delete/118156
Reject -- https://master.php.net/note/reject/118156
Search -- https://master.php.net/manage/user-notes.php