Misafir; şöyle de bi' uyarlama yapabiliriz;
<?php
define("DB_HOST", "127.0.0.1");
define("DB_PORT", "3306");
define("DB_NAME", "test");
define("DB_USER", "root");
define("DB_PASS", "root");
function insert(PDO $instance, $table, array $columns, array $parameters)
{
if(empty($columns) || empty($parameters))
{
return false;
}
if(count($columns) != count($parameters))
{
return false;
}
$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$query_string = "INSERT INTO `{$table}` SET ";
foreach($columns as $index => $column)
{
$query_string .= "`{$column}` = :{$column}, ";
}
$query_string = trim(trim($query_string), ",");
$statement = $instance->prepare($query_string);
foreach($columns as $index => $column)
{
$parameter = $parameters[$index];
$parameter_type = gettype($parameter);
switch(strtolower($parameter_type))
{
case "null":
{
$statement->bindParam(":{$column}", $parameter, PDO::PARAM_NULL);
} break;
case "integer":
{
$statement->bindParam(":{$column}", $parameter, PDO::PARAM_STR);
} break;
case "string":
{
$statement->bindParam(":{$column}", $parameter, PDO::PARAM_STR);
} break;
default:
{
$statement->bindParam(":{$column}", $parameter);
}
}
}
try
{
$response = $statement->execute();
return $response;
}
catch(PDOException $e)
{
return $e->getMessage();
}
}
try
{
$instance = new PDO(sprintf("mysql:host=%s;port=%s;dbname=%s", DB_HOST, DB_PORT, DB_NAME), DB_USER, DB_PASS);
$response = insert($instance, "events", array("ID", "name"), array(null, "PDO"));
echo $instance->lastInsertId();
}
catch(PDOException $e)
{
exit($e->getMessage());
}