steinhaug/mysqli

Mysqli Abstraction Layer

v1.6.6 2024-11-01 09:13 UTC

This package is auto-updated.

Last update: 2024-11-01 09:43:40 UTC


README

Mysqli Abstraction Layer v1.6.6

Table of Contents

1. Description

Mainly for development and logging of queries, but now that the class is up and running future releases should be expected to do the heavy lifting of queries and iteration.

2. Version History

2.1 Log

v1.6.6

- Updated readme.

v1.6.5

- Bugfix, error_number has to be int

v1.6.4

- buddy() updated, has prepared output aswell. echo $mysqli->buddy('table','insert','prepared');
- parse_col_type, added prepared for type

v1.6.3

- Added mode for ->result('assoc') without using second parameter.

v1.6.2

- Updated for PHP 8.1  

3. Install by composer

To install the library use composer:

composer require steinhaug/mysqli

4. Code Examples

4.1 Init

We want this to be a replacement for the existing $mysqli function in PHP so initialize your DB connection, using credentials from credentials.php in project.

$mysqli = Mysqli2::getInstance($mysql_host, $mysql_port, $mysql_user, $mysql_password, $mysql_database);

if ($mysqli->connect_errno) {
    echo 'Failed to connect to MySQL: (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error;
}

if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
    exit();
}

4.2 Query

Prepared query, quick query returns associated array:

$TestID = 1;
$row = $mysqli->prepared_query1('SELECT * FROM `zzz_testtable` WHERE `TestID`=?', 'i', [$TestID], true);
if($row===null){
    throw new Exception('prepared_query1(sql,true) error');
}

Prepared query, results comes in array

$TestID = 5;
$resultset = $mysqli->prepared_query('SELECT * FROM `zzz_testtable` WHERE `TestID`=?', 'i', [$TestID]);
if( !count($resultset) ){
    throw new Exception('prepared_query() returned unexpected result');
}
// echo $resultset[0]

Prepared delete:

$TestID = 1;
$UserID = 1;
$affected_rows = $mysqli->prepared_query('DELETE FROM `zzz_testtable` WHERE `TestID`=? AND `user_id`=?', 'ii', [$TestID, $UserID]);
if (!$affected_rows) {
    throw new Exception('prepared_query(delete from...) reported 0 deletion');
}

Prepared insert:

$sql = [
    'INSERT INTO `table_name` (`col_name`, `col_name_two`, `col_name_three`, `col_name_four`, `col_name_five`) VALUES (?,?,?,?,?)',
    'issds',
    [$variable, '2020-01-01 00:00:00', 'test/test@test.com', 1.23, '2020-01-01 00:00:00'],
];
$InsertId = $mysqli->prepared_insert($sql);
if (!$InsertId) {
    throw new Exception('prepared_insert(insert into) inserted_id error');
}

5. Information

5.1 License

This project is licensed under the terms of the MIT License. Enjoy!

5.2 Author

Kim Steinhaug, steinhaug at gmail dot com.

Sosiale lenker: LinkedIn, SoundCloud, Instagram, Youtube, X, Ko-Fi, Github, Gitlab

Generative AI lenker: Udio, Suno, Huggingface

Resurser og hjelpesider: Linktr.ee/steinhaugai, Linktr.ee/stainhaug, pinterest/steinhaug, pinterest/stainhaug