xaizek / rocketgit (License: AGPLv3+) (since 2018-12-09)
Light and fast Git hosting solution suitable to serve both as a hub or as a personal code storage with its tickets, pull requests, API and much more.
<root> / tests / sql.php (5c85652d8daec6793d3a7d1f777aee1b00cfd8db) (1,960B) (mode 100644) [raw]
<?php
error_reporting(E_ALL | E_STRICT);
ini_set("track_errors", "On");

$INC = dirname(__FILE__) . "/../inc";
require_once(dirname(__FILE__) . "/config.php");
require_once($INC . "/init.inc.php");
require_once($INC . "/log.inc.php");
require_once($INC . "/sql.inc.php");

rg_log_set_file("sql.log");

require_once("common.php");

rg_log("db: drop 'test' table...");
$sql = "DROP TABLE IF EXISTS test";
$res = rg_sql_query($db, $sql);
if ($res === FALSE) {
	rg_log("Cannot create table 'test' (" . rg_sql_error() . ")!");
	exit(1);
}

rg_log("db: test creation of a table...");
$sql = "CREATE TABLE test (id TEXT PRIMARY KEY"
	. ", f1 TEXT DEFAULT '', f2 TEXT DEFAULT '')";
$res = rg_sql_query($db, $sql);
if ($res === FALSE) {
	rg_log("Cannot create table 'test' (" . rg_sql_error() . ")!");
	exit(1);
}

rg_log("db: test insert...");
$sql = "INSERT INTO test (id) VALUES ('aaa')";
$res = rg_sql_query($db, $sql);
if ($res === FALSE) {
	rg_log("Cannot insert!");
	exit(1);
}

rg_log("db: test insert with the same key...");
$sql = "INSERT INTO test (id) VALUES ('aaa')";
$res = @rg_sql_query($db, $sql);
if ($res !== FALSE) {
	rg_log("I can do double insert, not good!");
	exit(1);
}

rg_log("db: test delete...");
$sql = "DELETE FROM test WHERE id = 'aaa'";
$res = rg_sql_query($db, $sql);
if ($res === FALSE) {
	rg_log("Cannot delete!");
	exit(1);
}

rg_log("db: test prepare with named values...");
$sql = "INSERT INTO test(id, f1, f2) VALUES (@@id@@, @@f@@, @@f@@)";
$params = array("id" => "myid", "f" => "value", "junk" => "aaa");
$res = rg_sql_query_params($db, $sql, $params);
if ($res === FALSE) {
	rg_log("Cannot insert into test using @@x@@!");
	exit(1);
}
$sql = "SELECT * FROM test WHERE id = 'myid'";
$res = rg_sql_query($db, $sql);
$row = rg_sql_fetch_array($res);
if (strcmp($row['f1'], "value") != 0) {
	rg_log("Seems that insert with @@x@@ are not working!");
	exit(1);
}

// TODO: test rg_sql_last_id

rg_sql_close($db);

rg_log("OK!");
?>
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/rocketgit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/rocketgit

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master