steinhaug / mysqli
Mysqli Abstraction Layer
Fund package maintenance!
Suck Up To The Developer
Requires
- php: >=8.0.0
- ext-mbstring: *
Requires (Dev)
README
Mysqli Abstraction Layer v1.6.6
Table of Contents
- Mysqli2
- Table of Contents
- 1. Description
- 2. Version History
- 3. Install by composer
- 4. Code Examples
- 5. Information
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