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());
	}