This article will give you a detailed introduction to how to use php PDO. You are welcome to refer to it. Friends who need to know more can save this article.
PDO::exec
The returned type is int, indicating the number of items that affect the result.
PDOStatement::execute
The returned value is boolean, true indicates successful execution, false indicates execution failure.
These two usually appear in:
The code is as follows | Copy code | ||||
$pre = $pdo->prepare($sql); |
Generally, you can use the value of $rs0 to determine whether the SQL execution is successful or not. If the value is false, it means that the SQL execution failed, 0 means no changes, and a value greater than 0 means how many records were affected.
However, $rs1 can only return whether the SQL execution is successful or not. If you need to get the number of affected records, you need to use $pre->rowCount();
I personally like to use MySQL, so I have these two lines in my extensions.ini
extension=pdo.so
extension=pdo_mysql.so
代码如下 | 复制代码 |
define('DB_NAME','test'); |
Code: [Select]
The code is as follows | Copy code |
define('DB_NAME','test'); define('DB_USER','test');define('DB_PASSWD','test'); define('DB_HOST','localhost');define('DB_TYPE','mysql'); $dbh = new PDO(DB_TYPE.':host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWD);
|
When operating like the above, $dbh itself represents the PDO connection
代码如下 | 复制代码 |
$sql = 'select * from test'; |
So what? Use PDO?
Don’t think about anything, just use the query function as usual
Code: [Select]
The code is as follows | Copy code | ||||
$sql = 'select * from test'; foreach ( $dbh->query($sql) as $value){ echo $value[col];
|
The code is as follows | Copy code |
$sth = $dbh->prepare('update db set zh_CN= :str where SN=:SN'); $sth->bindParam(':str',$str,PDO::PARAM_STR,12); $sth->bindParam(':SN',$SN); $sth->execute(); |
Please pay attention to :str and :SN in the article. When we use the bindParam function, we can use :word to specify the part that the system needs to apply. For example, we use :str and :SN to specify
As for the actual content, bindParam can also specify the type we want to input.
首先我们先看:str 的指定,:str 由於我确定资料是属於文字,因此利用PD::PARAM_STR 来告诉程式“这个是字串哟”,并且给一个范围,也就是长度是12个Bit.
We can also avoid that complexity, like :SN. Although it is also specified using bindParam, we omit the type and length. PHP will use the default type of the variable.
Finally, use $sth->execute(); to perform the execution action.
Basically it’s not difficult, it can even be said to be very simple!
If you have a large amount of data that needs to be applied repeatedly, you can desperately reuse bindParam to specify, such as my :str and :SN. If there are ten pieces of data, I can also add it directly to the data like this Library
Code: [Select]
The code is as follows | Copy code | ||||
foreach ($array => $value ) $sth->bindParam(':SN',$value[SN]); $sth->execute();
} |
代码如下 | 复制代码 |
$sth = $dbh->prepare('select * from db where SN = :SN'); |
Then, if you use prepare to select, of course the keywords can also be specified using :word as above
Code: [Select]
The code is as follows | Copy code |
$sth = $dbh->prepare('select * from db where SN = :SN');
$sth->bindParam(':SN',$value[SN]);
echo $meta["name"]; |
The element name of $meta is the field name of the database, and the content is of course the value itself
代码如下 | 复制代码 |
$sth = $dbh->prepare('select * from db where SN = :SN'); |
The code is as follows | Copy code |
$sth = $dbh->prepare('select * from db where SN = :SN'); $sth->bindParam(':SN',$value[SN]); $sth->execute(); if ($sth->errorCode()) { echo "There is an error! There is an error!"; print_r($sth->errorInfo()); } |
And $sth->errorInfo() will be an array, this array has three values
0 is SQLSTATE error code
1 The error code returned by the Driver you are using
2 Error message returned by the Driver you are using