Od jakiegoś cazsu korzystam z mojego sterownika do bazy danych mysql. Nie jest on może idealny, i jak narazie spełnia moje oczewikawania.
Z projektu na projekt okazuje się, że w pewnych momentach nie działa to tak jak bym sobie tego życzył.
KOD:
<?php
{
function error( $error, $query ) {
echo '<b>mySQL error:</b> '.$error.'. <br />zapytanie: '.$query; }
function zapytanie ( $query ) {
}
return $arrDane;
}
function dodaj( $co, $gdzie ) {
$pola = '';
$kolumny = '';
$licznik = 0;
foreach( $co as $klucz => $index ) {
$licznik++;
if( $licznik == $ilePol ) {
$kolumny .= $klucz;
$pola .= "'".$index."'";
} else {
$kolumny .= $klucz.", ";
$pola .= "'".$index."', ";
}
}
$query = "INSERT INTO ".$gdzie." (".$kolumny.") VALUES(".$pola.")";
$this->zapytanie($query);
}
function edycja( $co, $tabela, $gdzie ) {
$pola = '';
$licznik = 0;
foreach( $gdzie as $klucz => $index ) {
$warunek = $klucz.' = '.$index;
}
foreach( $co as $klucz => $index ) {
$licznik++;
if( $licznik == $ilePol )
$pola .= $klucz." = '".$index."'";
else
$pola .= $klucz." = '".$index."', ";
}
$query = "UPDATE ".$tabela." SET ".$pola." WHERE ".$warunek;
$this->zapytanie($query);
}
function usun( $co, $gdzie ) {
foreach( $co as $klucz => $index ) {
$warunek = $klucz.' = '.$index;
}
$query = " DELETE FROM ".$gdzie." WHERE ".$warunek;
$this->zapytanie($query);
}
}
?>
Problem leży w metodzie do edycji danych. Czasami jest tak, że chcę edytować dane poprzez zwiększenia jednego pola o jakąś liczbę - czyli:
UPDATE tabela SET punkty=punkty+5 WHERE id=666
Czyli u mnie powinno być tak:
<?php
$arr['punkty'] = 'punkty+5';
?>
Niestety wywala parse error :/
Podobnie jest z metodą usun gdy jakaś tabela nie ma pola autoincrement.
Czy ma ktoś jakiś pomysł aby rozwiązać mój problem bez dodadatkowych warunków w metodach?