Make a better database interactions
This commit is contained in:
parent
a075e1c36e
commit
031a188f5b
@ -30,6 +30,7 @@ class Post extends \Core\Model
|
||||
|
||||
if ($stmt = $db->query($sql)) {
|
||||
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
// For tests
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -60,16 +61,16 @@ class Post extends \Core\Model
|
||||
}
|
||||
}
|
||||
|
||||
public function entry($fields, $vals)
|
||||
public function entry($args)
|
||||
{
|
||||
if (count($fields) && count($vals) && count($fields) === count($vals)) {
|
||||
$keys = '`'.implode('`, `', $fields).'`';
|
||||
if (count($args)) {
|
||||
$keys = '`'.implode('`, `', array_keys($args)).'`';
|
||||
|
||||
$x = 1;
|
||||
$values = '';
|
||||
foreach ($vals as $val) {
|
||||
foreach ($args as $field) {
|
||||
$values .= '?';
|
||||
if ($x < count($vals)) {
|
||||
if ($x < count($args)) {
|
||||
$values .= ', ';
|
||||
}
|
||||
$x++;
|
||||
@ -84,7 +85,7 @@ class Post extends \Core\Model
|
||||
|
||||
$x = 1;
|
||||
|
||||
foreach ($vals as $val) {
|
||||
foreach ($args as $val) {
|
||||
$query->bindValue($x, urldecode($val));
|
||||
$x++;
|
||||
}
|
||||
|
@ -5,20 +5,18 @@ use App\Config;
|
||||
|
||||
abstract class Model
|
||||
{
|
||||
protected static $dsn;
|
||||
protected static $conn = null;
|
||||
|
||||
protected static function connectDB()
|
||||
{
|
||||
static $conn = null;
|
||||
|
||||
try {
|
||||
if (!$conn) {
|
||||
if (!self::$conn) {
|
||||
$dsn = 'mysql:host='.Config::DB_HOST.';dbname='.Config::DB_DB;
|
||||
$conn = new \PDO($dsn, Config::DB_UNAME, Config::DB_PWD);
|
||||
self::$conn = new \PDO($dsn, Config::DB_UNAME, Config::DB_PWD);
|
||||
|
||||
$conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
|
||||
self::$conn->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
|
||||
}
|
||||
return $conn;
|
||||
return self::$conn;
|
||||
} catch (PDOException $e) {
|
||||
echo $e->getMessage();
|
||||
}
|
||||
|
@ -7,18 +7,25 @@ class PostTest extends \PHPUnit\Framework\TestCase
|
||||
*
|
||||
* @test
|
||||
*/
|
||||
public function showDataSuccess()
|
||||
public function databaseInteractionsSuccess()
|
||||
{
|
||||
$post = new Post();
|
||||
|
||||
$this->assertTrue($post->showAll());
|
||||
|
||||
$fields = ['category', 'expired_at', 'creator', 'content'];
|
||||
$values = ['3', '2017-09-02', '2', 'barbarbarbarbarbarbar!'];
|
||||
$args = [
|
||||
'category' => 3,
|
||||
'expired_at' => '2017-09-02',
|
||||
'creator' => 2,
|
||||
'content' => 'barbarbarbarbarbarbar!'
|
||||
];
|
||||
|
||||
$this->assertTrue($post->entry($fields, $values));
|
||||
$this->assertTrue($post->entry($args));
|
||||
|
||||
$args = ['category' => 5, 'content' => 'foofoofoofoo!'];
|
||||
$args = [
|
||||
'category' => 5,
|
||||
'content' => 'foofoofoofoo!'
|
||||
];
|
||||
|
||||
$this->assertTrue($post->update($args, 1));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user