/iaLib/ia_examples/ia/Sql/Mysql/SqlBuilder_example.php
<?php
$ia_example = [
'title' => 'ia\Sql\Mysql\SqlBuilder', // fully qualified className
'summary' => '', // class summary
'full_example' => '', // full usage example, relative path from ia_examples, blank '' not shown.
'example_file' => 'code/ia/Sql/Mysql/SqlBuilder_example_code.php', // method by method example, blank '' not shown.
];
include( __DIR__ . '/../../../template/ia_example_class.php');
/iaLib/ia_examples/code/ia/Sql/Mysql/SqlBuilder_example_code.php
use ia\Sql\Mysql\SqlBuilder;
use ia\DocumentIt\DocumentIt;
echo '<h3>Disclaimer: Auto generated file.
Please help us setting parameters to useful values and extending the examples.
</h3>';
try {
echo <<< CONSTRUCTOR_PROTOTYPE
<pre>
/*
\$sqlBuilder = new SqlBuilder();
*/
\$sqlBuilder = new SqlBuilder();
</pre>
CONSTRUCTOR_PROTOTYPE;
$sqlBuilder = new SqlBuilder();
echo '<ul class="usage">';
///////// \$sqlBuilder->quote('palabra', null /* =mixed= */); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_quote'><b>\$sqlBuilder->quote(<span class="type">string</span> \$fieldName, <span class="type">mixed</span> \$value, <span class="type">array</span> \$fieldNameDontQuote <span class="default">= []</span>) <span>: string</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Sql\Mysql\SqlBuilder", "quote")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$sqlBuilder->quote('palabra', null /* =mixed= */); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $sqlBuilder->quote('palabra', null /* =mixed= */);
echo '</ol>';
///////// \$sqlBuilder->where(['a' => '1', 'b' => '2', 'c' => 3]); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_where'><b>\$sqlBuilder->where(<span class="type">array|string</span> \$where, <span class="type">array</span> \$whereDontQuoteFieldName <span class="default">= []</span>) <span>: string</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Sql\Mysql\SqlBuilder", "where")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$sqlBuilder->where(['a' => '1', 'b' => '2', 'c' => 3]); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $sqlBuilder->where(['a' => '1', 'b' => '2', 'c' => 3]);
echo '</ol>';
///////// \$sqlBuilder->build_sql_in('palabra', ['a' => '1', 'b' => '2', 'c' => 3]); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_build_sql_in'><b>\$sqlBuilder->build_sql_in(<span class="type">string</span> \$fieldName, <span class="type">array|string</span> \$whereValues, <span class="type">array</span> \$fieldNameDontQuote <span class="default">= []</span>) <span>: string</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Sql\Mysql\SqlBuilder", "build_sql_in")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$sqlBuilder->build_sql_in('palabra', ['a' => '1', 'b' => '2', 'c' => 3]); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $sqlBuilder->build_sql_in('palabra', ['a' => '1', 'b' => '2', 'c' => 3]);
echo '</ol>';
///////// \$sqlBuilder->update('palabra', ['a' => '1', 'b' => '2', 'c' => 3]); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_update'><b>\$sqlBuilder->update(<span class="type">string</span> \$table, <span class="type">array</span> \$values, <span class="type">string|array</span> \$where <span class="default">= []</span>, <span class="type">array</span> \$fieldNameDontQuote <span class="default">= []</span>, <span class="type">array</span> \$whereDontQuoteFieldName <span class="default">= []</span>) <span>: string</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Sql\Mysql\SqlBuilder", "update")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$sqlBuilder->update('palabra', ['a' => '1', 'b' => '2', 'c' => 3]); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $sqlBuilder->update('palabra', ['a' => '1', 'b' => '2', 'c' => 3]);
echo '</ol>';
///////// \$sqlBuilder->updateLastChanged('palabra', ['a' => '1', 'b' => '2', 'c' => 3]); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_updateLastChanged'><b>\$sqlBuilder->updateLastChanged(<span class="type">string</span> \$table, <span class="type">array</span> \$values, <span class="type">array</span> \$where <span class="default">= []</span>, <span class="type">array</span> \$fieldsChanged <span class="default">= []</span>, <span class="type">array</span> \$fieldNameDontQuote <span class="default">= []</span>, <span class="type">array</span> \$whereDontQuoteFieldName <span class="default">= []</span>) <span>: array</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Sql\Mysql\SqlBuilder", "updateLastChanged")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$sqlBuilder->updateLastChanged('palabra', ['a' => '1', 'b' => '2', 'c' => 3]);
-> </b><br><pre>
DOCUMENT_EXAMPLE;
/// run ///
print_r(
$sqlBuilder->updateLastChanged('palabra', ['a' => '1', 'b' => '2', 'c' => 3])
);
echo "</pre>";
echo '</ol>';
///////// \$sqlBuilder->insert('palabra', ['a' => '1', 'b' => '2', 'c' => 3]); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_insert'><b>\$sqlBuilder->insert(<span class="type">string</span> \$table, <span class="type">array</span> \$values, <span class="type">bool</span> \$autoOnUpdate <span class="default">= false</span>, <span class="type">bool \$autoOnUpdate true: an on duplicate key update clause will be added with</span> \$onUpdate <span class="default">= ''</span>, <span class="type">array</span> \$fieldNameDontOnUpdate <span class="default">= []</span>, <span class="type">array</span> \$fieldNameDontQuote <span class="default">= []</span>) <span>: string</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Sql\Mysql\SqlBuilder", "insert")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$sqlBuilder->insert('palabra', ['a' => '1', 'b' => '2', 'c' => 3]); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $sqlBuilder->insert('palabra', ['a' => '1', 'b' => '2', 'c' => 3]);
echo '</ol>';
///////// \$sqlBuilder->insertInto('palabra', ['a' => '1', 'b' => '2', 'c' => 3]); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_insertInto'><b>\$sqlBuilder->insertInto(<span class="type">string \$table</span> \$table, <span class="type">array</span> \$values) <span>: string</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Sql\Mysql\SqlBuilder", "insertInto")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$sqlBuilder->insertInto('palabra', ['a' => '1', 'b' => '2', 'c' => 3]); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $sqlBuilder->insertInto('palabra', ['a' => '1', 'b' => '2', 'c' => 3]);
echo '</ol>';
///////// \$sqlBuilder->insertValues(['a' => '1', 'b' => '2', 'c' => 3]); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_insertValues'><b>\$sqlBuilder->insertValues(<span class="type">array</span> \$values, <span class="type">array</span> \$fieldNameDontQuote <span class="default">= []</span>) <span>: string</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Sql\Mysql\SqlBuilder", "insertValues")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$sqlBuilder->insertValues(['a' => '1', 'b' => '2', 'c' => 3]); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $sqlBuilder->insertValues(['a' => '1', 'b' => '2', 'c' => 3]);
echo '</ol>';
///////// \$sqlBuilder->insertOnDuplicateKey(['a' => '1', 'b' => '2', 'c' => 3]); //////////////////////////////////////////////////
echo <<< FUNCTIONDEF
<li id='u_insertOnDuplicateKey'><b>\$sqlBuilder->insertOnDuplicateKey(<span class="type">array</span> \$values, <span class="type">bool</span> \$updateAllFields <span class="default">= true</span>, <span class="type">string</span> \$onUpdate <span class="default">= ''</span>, <span class="type">array</span> \$fieldNameDontOnUpdate <span class="default">= []</span>) <span>: string</span></b>
FUNCTIONDEF;
echo "<pre class='docBlock'>".DocumentIt::methodDocBlockProtected("ia\Sql\Mysql\SqlBuilder", "insertOnDuplicateKey")."</pre>";
echo "<ol class='usage'>";
/// display ///
echo <<< DOCUMENT_EXAMPLE
<li>\$sqlBuilder->insertOnDuplicateKey(['a' => '1', 'b' => '2', 'c' => 3]); ->
DOCUMENT_EXAMPLE;
/// run ///
echo $sqlBuilder->insertOnDuplicateKey(['a' => '1', 'b' => '2', 'c' => 3]);
echo '</ol>';
/* PerfilExample adds new methods here */
echo '</ul>';
} catch(Exception $exception) { echo "<pre class='errorBlock'>$exception</pre>"; }
phpunit test file template
<?php
use ia\Sql\Mysql\SqlBuilder;
use PHPUnit\Framework\TestCase;
class SqlBuilderTest extends TestCase {
/**
* @dataProvider quote_Provider
*
*/
public function test_quote($fieldName, $value, $fieldNameDontQuote , $expected) {
$sqlBuilder = new SqlBuilder();
$this->assertEquals($expected, $sqlBuilder->quote($fieldName, $value, $fieldNameDontQuote) );
}
function quote_Provider() {
return [
'test 1' => [ '', '', '', '' ],
];
}
/**
* @dataProvider where_Provider
*
*/
public function test_where($where, $whereDontQuoteFieldName , $expected) {
$sqlBuilder = new SqlBuilder();
$this->assertEquals($expected, $sqlBuilder->where($where, $whereDontQuoteFieldName) );
}
function where_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider build_sql_in_Provider
*
*/
public function test_build_sql_in($fieldName, $whereValues, $fieldNameDontQuote , $expected) {
$sqlBuilder = new SqlBuilder();
$this->assertEquals($expected, $sqlBuilder->build_sql_in($fieldName, $whereValues, $fieldNameDontQuote) );
}
function build_sql_in_Provider() {
return [
'test 1' => [ '', '', '', '' ],
];
}
/**
* @dataProvider update_Provider
*
*/
public function test_update($table, $values, $where, $fieldNameDontQuote, $whereDontQuoteFieldName , $expected) {
$sqlBuilder = new SqlBuilder();
$this->assertEquals($expected, $sqlBuilder->update($table, $values, $where, $fieldNameDontQuote, $whereDontQuoteFieldName) );
}
function update_Provider() {
return [
'test 1' => [ '', '', '', '', '', '' ],
];
}
/**
* @dataProvider updateLastChanged_Provider
*
*/
public function test_updateLastChanged($table, $values, $where, $fieldsChanged, $fieldNameDontQuote, $whereDontQuoteFieldName , $expected) {
$sqlBuilder = new SqlBuilder();
$this->assertEquals($expected, $sqlBuilder->updateLastChanged($table, $values, $where, $fieldsChanged, $fieldNameDontQuote, $whereDontQuoteFieldName) );
}
function updateLastChanged_Provider() {
return [
'test 1' => [ '', '', '', '', '', '', '' ],
];
}
/**
* @dataProvider insert_Provider
*
*/
public function test_insert($table, $values, $autoOnUpdate, $onUpdate, $fieldNameDontOnUpdate, $fieldNameDontQuote , $expected) {
$sqlBuilder = new SqlBuilder();
$this->assertEquals($expected, $sqlBuilder->insert($table, $values, $autoOnUpdate, $onUpdate, $fieldNameDontOnUpdate, $fieldNameDontQuote) );
}
function insert_Provider() {
return [
'test 1' => [ '', '', '', '', '', '', '' ],
];
}
/**
* @dataProvider insertInto_Provider
*
*/
public function test_insertInto($table, $values , $expected) {
$sqlBuilder = new SqlBuilder();
$this->assertEquals($expected, $sqlBuilder->insertInto($table, $values) );
}
function insertInto_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider insertValues_Provider
*
*/
public function test_insertValues($values, $fieldNameDontQuote , $expected) {
$sqlBuilder = new SqlBuilder();
$this->assertEquals($expected, $sqlBuilder->insertValues($values, $fieldNameDontQuote) );
}
function insertValues_Provider() {
return [
'test 1' => [ '', '', '' ],
];
}
/**
* @dataProvider insertOnDuplicateKey_Provider
*
*/
public function test_insertOnDuplicateKey($values, $updateAllFields, $onUpdate, $fieldNameDontOnUpdate , $expected) {
$sqlBuilder = new SqlBuilder();
$this->assertEquals($expected, $sqlBuilder->insertOnDuplicateKey($values, $updateAllFields, $onUpdate, $fieldNameDontOnUpdate) );
}
function insertOnDuplicateKey_Provider() {
return [
'test 1' => [ '', '', '', '', '' ],
];
}
}
ia Doc