qrzysio / mysql-pdo-class
用于通过PDO处理MySQL的PHP类。
v1.0.7
2018-05-05 16:02 UTC
Requires
- php: >=5.1.0
README
用于通过PDO处理MySQL的PHP类。
安装
使用composer
composer require qrzysio/mysql-pdo-class
用法
require 'vendor/autoload.php';
$db = new Db();
$db->query('INSERT INTO mytable (FName, LName, Age, Gender) VALUES (:fname, :lname, :age, :gender)');
$db->bind(':fname', 'John');
$db->bind(':lname', 'Smith');
$db->bind(':age', '24');
$db->bind(':gender', 'male');
$db->exec();
echo $db->lastId();
*** Transactions ***
$db->beginTrans();
$db->query('INSERT INTO mytable (FName, LName, Age, Gender) VALUES (:fname, :lname, :age, :gender)');
$db->bind(':fname', 'Jenny');
$db->bind(':lname', 'Smith');
$db->bind(':age', '23');
$db->bind(':gender', 'female');
$db->exec();
$db->bind(':fname', 'Jilly');
$db->bind(':lname', 'Smith');
$db->bind(':age', '25');
$db->bind(':gender', 'female');
$db->exec();
echo $db->lastId();
$db->endTrans();
*** Select a single row ***
$db->query('SELECT FName, LName, Age, Gender FROM mytable WHERE FName = :fname');
$db->bind(':fname', 'Jenny');
$row = $db->single();
*** Select multiple rows ***
$db->query('SELECT FName, LName, Age, Gender FROM mytable WHERE LName = :lname');
$db->bind(':lname', 'Smith');
$rows = $db->fetch();
echo $db->numrows();
try { } catch { }用法
使用try
和catch
块非常方便。
try {
$db->query('INSERT INTO mytable (FName, LName, Age, Gender) VALUES (:fname, :lname, :age, :gender)');
$db->bind(':fname', 'Jenny');
$db->bind(':lname', 'Smith');
$db->bind(':age', '23');
$db->bind(':gender', 'female');
$db->exec();
} catch (PDOException $e) {
echo '<p>Something went wrong!</p>';
echo '<p><strong>Details:</strong></p>';
echo '<p>'.$e->getMessage().'</p>';
}
或更有用的方法。
try {
// doing some operations
ValidateFirst();
// adding to database
try {
$db->query('INSERT INTO mytable (FName, LName, Age, Gender) VALUES (:fname, :lname, :age, :gender)');
$db->bind(':fname', 'Jenny');
$db->bind(':lname', 'Smith');
$db->bind(':age', '23');
$db->bind(':gender', 'female');
$db->exec();
} catch (PDOException $e) {
throw new Exception('We have an issue with this code!');
}
// additional operations
DoSomehing();
} catch (Exception $e) {
echo '<p>Something went wrong!</p>';
echo '<p><strong>Details:</strong></p>';
echo '<p>'.$e->getMessage().'</p>';
}
所有方法
exec()
- 执行SQL查询
fetch()
- 获取所有行并返回数组
single()
- 获取单行作为数组
numrows()
- 返回影响的或计数的行数
lastId()
- 最后插入的ID
cancel()
- 回滚操作
debug()
- 返回PDO的debugDumpParams()
方法
beginTrans()
- 开始事务
endTrans()
- 结束事务
许可证
此脚本由博客作者制作并在此发布:http://culttt.com/2012/10/01/roll-your-own-pdo-php-class/
没有关于许可证的信息,因此我认为它是MIT。我在代码中做了一些小的更改,也许将来还会做更多。根据前作者的说明,此脚本的许可证是MIT。