- str_repeat: documentation ( source)
- implode: documentation ( source)
- array_keys: documentation ( source)
<?php
$data = array("oh" => "D:");
$sql = "INSERT INTO ".$this->getName()." (" . implode(', ',array_keys($data)) . ") VALUES (".str_repeat('? ,', count($data)-1)." ?)
ON DUPLICATE KEY UPDATE ". implode(' = ?, ',array_keys($data)) . " = ?";