Files
nexusphp/nexus/Database/DBMysqli.php

85 lines
1.8 KiB
PHP
Raw Normal View History

<?php
2021-01-27 16:26:37 +08:00
namespace Nexus\Database;
class DBMysqli implements DBInterface
{
2021-01-04 20:47:22 +08:00
private $mysqli;
public function connect($host, $username, $password, $database, $port)
{
2021-01-27 16:26:37 +08:00
$mysqli = new \mysqli($host, $username, $password, $database, $port);
/* check connection */
if (mysqli_connect_errno()) {
2021-01-27 16:26:37 +08:00
throw new DatabaseException(mysqli_connect_error());
}
/* activate reporting */
2021-01-27 16:26:37 +08:00
$driver = new \mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL & ~MYSQLI_REPORT_INDEX;
return $this->mysqli = $mysqli;
}
public function query(string $sql)
{
return $this->mysqli->query($sql);
}
public function error(): string
{
return $this->mysqli->error;
}
public function errno(): int
{
return $this->mysqli->errno;
}
public function numRows($mysqliResult): int
{
return $mysqliResult->num_rows;
}
public function selectDb($database)
{
return $this->mysqli->select_db($database);
}
2021-01-04 20:47:22 +08:00
public function fetchAssoc($mysqliResult)
{
return $mysqliResult->fetch_assoc();
}
2021-01-04 20:47:22 +08:00
public function fetchRow($mysqliResult)
{
return $mysqliResult->fetch_row();
}
2021-01-04 20:47:22 +08:00
public function fetchArray($mysqliResult, $type)
2020-12-28 02:14:41 +08:00
{
if (is_null($type)) {
$type = MYSQLI_BOTH;
}
return $mysqliResult->fetch_array($type);
}
public function affectedRows(): int
{
return $this->mysqli->affected_rows;
}
public function escapeString(string $string): string
{
return $this->mysqli->real_escape_string($string);
}
2020-12-28 20:52:54 +08:00
public function lastInsertId(): int
{
return $this->mysqli->insert_id;
}
2021-01-07 17:35:00 +08:00
public function freeResult($mysqliResult)
{
return $mysqliResult->free_result();
}
}