Я предлагаю вам использовать ORM как eloquent для проекта, пока не стало слишком поздно, и вы не можете понять, что находится где. но это ваше решение:
<?php
define( 'DB_NAME' , 'ciw' );
define( 'DB_USER' , 'root' );
define( 'DB_PASSWORD' , 'root' );
define( 'DB_HOST' , 'localhost' );
define( 'DB_CHARSET' , 'utf8' );
// Create connection to database using PDO
global $connection, $lastQuery;
try
{
#$connection = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);
$connection = new PDO( "mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET, DB_USER, DB_PASSWORD );
// var_dump ($connection);
// Set PDO error mode to exception:
$connection->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
// echo "Conneted to DB Successfully";
}
catch( PDOException $e)
{
echo "Connection failed: " .$e->getMessage();
}
затем создайте файл functions.php для размещения ваших вспомогательных функций:
function sql_runner( $sql , $inputs = [] )
{
global $connection , $lastQuery;
try {
$lastQuery = $connection -> prepare( $sql );
$lastQuery -> execute( $inputs );
return $lastQuery;
} catch( PDOException $e ) {
echo "Connection failed: " . $e -> getMessage();
}
}
, затем нужно выбрать и выбрать все функции, как следует:
function sql_runner_fetch( $sql , $inputs = [] )
{
return sql_runner( $sql , $inputs ) -> fetch( PDO::FETCH_ASSOC );
}
function sql_runner_fetch_all( $sql , $inputs = [] )
{
return sql_runner( $sql , $inputs ) -> fetchAll( PDO::FETCH_ASSOC );
}
если вам нужно посчитать строки:
function sql_runner_rowCount( $count = -1 )
{
global $lastQuery;
try {
if( $count == -1 ) {
return $lastQuery -> rowCount();
}
return $lastQuery -> rowCount() == $count;
} catch( PDOException $e ) {
echo "Connection failed: " . $e -> getMessage();
}
}
получить идентификатор последнего запроса:
function lastInsertedID()
{
global $connection;
return $connection -> lastInsertId();
}
проверить, является ли он уникальным:
function is_unique( $table , $column , $value )
{
$sql = "SELECT * FROM `$table` WHERE `$column` = ?";
sql_runner_fetch_all( $sql , [ $value ] );
if( sql_runner_rowCount( 0 ) ) {
return true;
}
}
Я надеюсь, вы понимаете, как добавлять свои собственные функции.
всякий раз, когда вам нужно вызвать запрос, просто сделайте это:
$stmt = " SELECT *,`users`.`id` AS `users_id` FROM `users`";
$users = sql_runner_fetch_all($stmt);
вы можете обрабатывать операторы с помощьюфайл построителя выписок. но это просто рабочий путь, а не правильный.