Hallo,
wegen prepared statement habe ich folgenden Code gefunden.
Aberr folgende Funktionen verstehe ich nicht, was diese machen:
Wenn ich nen Query absetzen will mache ich das dann immer so:
Hab das ganze aus nen CMS
wegen prepared statement habe ich folgenden Code gefunden.
Aberr folgende Funktionen verstehe ich nicht, was diese machen:
PHP:
public function prepare($strQuery)
{
if (!strlen($strQuery))
{
throw new Exception('Empty query string');
}
$this->resResult = NULL;
$this->strQuery = $this->prepare_query($strQuery);
// Auto-generate the SET/VALUES subpart
if (strncasecmp($this->strQuery, 'INSERT', 6) === 0 || strncasecmp($this->strQuery, 'UPDATE', 6) === 0)
{
$this->strQuery = str_replace('%s', '%p', $this->strQuery);
}
// Replace wildcards
$arrChunks = preg_split("/('[^']*')/", $this->strQuery, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
foreach ($arrChunks as $k=>$v)
{
if (substr($v, 0, 1) == "'")
{
continue;
}
$arrChunks[$k] = str_replace('?', '%s', $v);
}
$this->strQuery = trim(implode('', $arrChunks));
return $this;
}
PHP:
public function execute()
{
$arrParams = func_get_args();
if (is_array($arrParams[0]))
{
$arrParams = array_values($arrParams[0]);
}
$this->replaceWildcards($arrParams);
$strKey = md5($this->strQuery);
// Try to load the result from cache
if (isset(self::$arrCache[$strKey]) && !self::$arrCache[$strKey]->isModified)
{
return self::$arrCache[$strKey]->reset();
}
$objResult = $this->query();
// Cache the result objects
if ($objResult instanceof Database_Result)
{
self::$arrCache[$strKey] = $objResult;
}
return $objResult;
}
Wenn ich nen Query absetzen will mache ich das dann immer so:
PHP:
$this->prepared("UPDATE tabelle SET id=? WHERE user=?")->execute(8,'Kalito');
Hab das ganze aus nen CMS