Skip to content

Commit 2a61a57

Browse files
committed
charset configuration
1 parent 492be88 commit 2a61a57

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
"ext-fileinfo": "*",
2222
"ext-iconv": "*",
2323
"ext-mbstring": "*",
24-
"ext-json": "*"
24+
"ext-json": "*",
25+
"ext-pdo": "*"
2526
},
2627
"require-dev": {
2728
"phpunit/phpunit": "^6"

src/Storage/PDOConnector.php

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
namespace doganoo\PHPUtil\Storage;
2727

2828
use doganoo\PHPUtil\Exception\InvalidCredentialsException;
29+
use PDO;
30+
use PDOStatement;
2931

3032
/**
3133
* Class MySQLConnector
@@ -36,9 +38,9 @@ class PDOConnector implements IStorageConnector {
3638

3739
/** @var array $credentials */
3840
private $credentials = null;
39-
/** @var \PDO $mysqli */
41+
/** @var PDO $mysqli */
4042
private $pdo = null;
41-
/** @var \PDOStatement $statement */
43+
/** @var PDOStatement $statement */
4244
private $statement = null;
4345
/** @var bool $transactionExists */
4446
private $transactionExists = false;
@@ -64,6 +66,7 @@ public function getSchema(): ?string {
6466

6567
/**
6668
* starts a database transaction
69+
*
6770
* @return bool
6871
*/
6972
public function startTransaction(): bool {
@@ -77,6 +80,7 @@ public function startTransaction(): bool {
7780

7881
/**
7982
* commits a started database transaction
83+
*
8084
* @return bool
8185
*/
8286
public function commit(): bool {
@@ -90,6 +94,7 @@ public function commit(): bool {
9094

9195
/**
9296
* rolls a started transaction back
97+
*
9398
* @return bool
9499
*/
95100
public function rollback(): bool {
@@ -113,12 +118,13 @@ public function connect(): bool {
113118
}
114119
$host = $this->credentials["servername"];
115120
$db = $this->credentials["dbname"];
116-
$dsn = "mysql:host=$host;dbname=$db;charset=utf8";
117-
$this->pdo = new \PDO($dsn,
121+
$charSet = $this->credentials["charset"] ?? 'utf8';
122+
$dsn = "mysql:host=$host;dbname=$db;charset=$charSet";
123+
$this->pdo = new PDO($dsn,
118124
$this->credentials["username"],
119125
$this->credentials["password"]
120126
);
121-
$this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
127+
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
122128
return $this->pdo !== null;
123129
}
124130

@@ -147,9 +153,10 @@ private function hasMinimumCredentials(): bool {
147153
* prepares a SQL statement
148154
*
149155
* @param string $sql
150-
* @return null|\PDOStatement
156+
*
157+
* @return null|PDOStatement
151158
*/
152-
public function prepare(string $sql): ?\PDOStatement {
159+
public function prepare(string $sql): ?PDOStatement {
153160
$statement = $this->getConnection()->prepare($sql);
154161
if ($statement === false) {
155162
return null;
@@ -161,7 +168,7 @@ public function prepare(string $sql): ?\PDOStatement {
161168
/**
162169
* returns the connection
163170
*
164-
* @return \PDO|null
171+
* @return PDO|null
165172
*/
166173
public function getConnection() {
167174
if (!$this->hasMinimumCredentials()) {
@@ -203,6 +210,7 @@ public function disconnect(): bool {
203210

204211
/**
205212
* @param null $name
213+
*
206214
* @return string
207215
*/
208216
public function getLastInsertId($name = null) {
@@ -218,8 +226,8 @@ public function getLastInsertId($name = null) {
218226
* @param null $length
219227
* @param null $driverOptions
220228
*/
221-
public function bindParam(string $param, $value, $dataType = \PDO::PARAM_STR, $length = null, $driverOptions = null) {
229+
public function bindParam(string $param, $value, $dataType = PDO::PARAM_STR, $length = null, $driverOptions = null) {
222230
$this->statement->bindParam($param, $value, $dataType, $length, $driverOptions);
223231
}
224232

225-
}
233+
}

0 commit comments

Comments
 (0)