1. Go to this page and download the library: Download voku/simple-mysqli library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
voku / simple-mysqli example snippets
use voku\db\DB;
ance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
$sql = "SELECT * FROM users
WHERE id_user = :id_user
AND active = :active
LIMIT 1
";
$result = $db->query($sql, ['id_user' => 11, 'active' => 1]);
if ($result) {
$user = $result->fetchArray();
print_r($user);
} else {
echo "user not found";
}
$db->beginTransaction();
$db->query(
'UPDATE `users` SET `foo` = :foo WHERE id = :id',
['foo' => 100, 'id' => 1]
);
$db->query(
'UPDATE `users_noop` SET `foo` = :foo WHERE id = :id',
['foo' => 100, 'id' => 2]
);
$db->endTransaction();
$db->transact(function($db) {
$db->query(
'UPDATE `users` SET `foo` = :foo WHERE id = :id',
['foo' => 100, 'id' => 1]
);
$db->query(
'UPDATE `users_noop` SET `foo` = :foo WHERE id = :id',
['foo' => 100, 'id' => 2]
);
});
$result = $db->query("SELECT * FROM users");
$allUsers = $result->fetchAll();
$row = $result->fetch(); // fetch an single result row as defined by the config (array, object or Arrayy)
$row = $result->fetchArray(); // fetch an single result row as array
$row = $result->fetchArrayy(); // fetch an single result row as Arrayy object
$row = $result->fetchObject(); // fetch an single result row as object
$row = $result->fetchYield(); // fetch an single result row as Generator
$data = $result->fetchAll(); // fetch all result data as defined by the config (array, object or Arrayy)
$data = $result->fetchAllArray(); // fetch all result data as array
$data = $result->fetchAllArrayy(); // fetch all result data as Array object
$data = $result->fetchAllObject(); // fetch all result data as object
$data = $result->fetchAllYield(); // fetch all result data as Generator
$data = $result->fetchColumn(string $column, bool $skipNullValues); // fetch a single column as string
$data = $result->fetchAllColumn(string $column, bool $skipNullValues); // fetch a single column as an 1-dimension array
$data = $result->fetchArrayPair(string $key, string $value); // fetch data as a key/value pair array
$db->get() // alias for $db->fetch();
$db->getAll() // alias for $db->fetchAll();
$db->getObject() // alias for $db->fetchAllObject();
$db->getArray() // alias for $db->fetchAllArray();
$db->getArrayy() // alias for $db->fetchAllArrayy();
$db->getYield() // alias for $db->fetchAllYield();
$db->getColumn($key) // alias for $db->fetchColumn($key);
$result = $db->select('users');
// using while
while ($row = $result->fetch()) {
echo $row->name;
echo $row->email;
}
// using foreach (via "fetchAllObject()")
foreach($result->fetchAllObject() as $row) {
echo $row->name;
echo $row->email;
}
// using foreach (via "Result"-object)
foreach($result as $row) {
echo $row->name;
echo $row->email;
}
// using foreach (via "Generator"-object)
foreach($result->fetchAllYield() as $row) {
echo $row->name;
echo $row->email;
}
// INFO: "while + fetch()" and "fetchAllYield()" will use less memory that "foreach + "fetchAllObject()", because we will fetch each result entry seperatly
$sql = "
INSERT INTO foo
SET
page_template = 'lall1',
page_type = 'test1';
INSERT INTO lall
SET
page_template = 'lall2',
page_type = 'test2';
INSERT INTO bar
SET
page_template = 'lall3',
page_type = 'test3';
";
$result = $this->db->multi_query($sql); // true
$sql = "
SELECT * FROM foo;
SELECT * FROM lall;
SELECT * FROM bar;
";
$result = $this->db->multi_query($sql); // Result[]
foreach ($result as $resultForEach) {
$tmpArray = $resultForEach->fetchArray();
...
}
use voku\db\DB;
$db = DB::getInstance();
// -------------
// prepare the queries
$query = 'INSERT INTO users
SET
name = ?,
email = ?
';
$prepare = $db->prepare($query);
$name = '';
$email = '';
$prepare->bind_param_debug('ss', $name, $email);
// -------------
// execute query no. 1
// INFO: "$template" and "$type" are references, since we use "bind_param" or "bind_param_debug"
$name = 'name_1_中';
$email = '[email protected]';
$prepare->execute();
// DEBUG
echo $prepare->get_sql_with_bound_parameters();
// -------------
// execute query no. 2
// INFO: "$template" and "$type" are references, since we use "bind_param" or "bind_param_debug"
$name = 'Lars';
$email = '[email protected]';
$prepare->execute();
// DEBUG
echo $prepare->get_sql_with_bound_parameters();
use voku\db\DB;
$db = DB::getInstance();
// -------------
// insert some dummy-data, first
$data = [
'page_template' => 'tpl_test_new123123',
'page_type' => 'ö\'ä"ü',
];
// will return the auto-increment value of the new row
$resultInsert[1] = $db->insert($this->tableName, $data);
$resultInsert[2] = $db->insert($this->tableName, $data);
// -------------
// prepare the queries
$sql = 'SELECT * FROM ' . $this->tableName . '
WHERE page_id = ?
';
$prepare = $this->db->prepare($sql);
$page_id = 0;
$prepare->bind_param_debug('i', $page_id);
// -------------
// execute query no. 1
$page_id = $resultInsert[1];
$result = $prepare->execute();
$data = $result->fetchArray();
// $data['page_template'] === 'tpl_test_new123123'
// $data['page_id'] === $page_id
// -------------
// execute query no. 2
$page_id = $resultInsert[2];
$result = $prepare->execute();
$data = $result->fetchArray();
// $data['page_id'] === $page_id
// $data['page_template'] === 'tpl_test_new123123'