Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z INSERTEM - ciekawe
Forum PHP.pl > Forum > Bazy danych > MySQL
Speed666
A więc tak. Mam kod który skleja z tablicy $_POST zmienne w ciąg potrzebny do wykonania instrukcji INSERT.
Wygląda tak: (wybaczcie za bałagan - to prototyp - będzie poprawiany)
  1. <?php
  2.  
  3. $insert = &#092;"insert into ogloszenia (\";
  4. $value = &#092;"values (\";
  5. foreach($_POST as $key => $val) {
  6.  
  7. $insert .= &#092;",\".$key.\"\";
  8. if ($val != &#092;"\") {
  9. $value .= &#092;"`\".$val.\"`,\";
  10. } else {
  11. $value .= &#092;" NULL ,\";
  12. }
  13. }
  14.  
  15.  
  16. $insert .= &#092;")\";
  17. $ktory = strlen($value)-1;
  18. $value[$ktory] = &#092;")\";
  19. $przecinek = 0;
  20.  
  21.  
  22.  
  23. for($l=0;$l<strlen($insert);$l++) {
  24. if ( ($insert[$l] == &#092;",\") && ($przecinek == 0) ){
  25. $przecinek = 1;
  26. }
  27. if ($przecinek == 0) {
  28. $insert[$l] = $insert[$l];
  29. } else {
  30. $insert[$l] = $insert[$l+1];
  31. }
  32. }
  33.  
  34. $query = $insert .= $value;
  35. $result = mysql_query($query) or die('Błąd w zapytaniu takim a takim. Komunikat: '.mysql_error().'; Numer błędu: '.mysql_errno());
  36.  
  37. ?>

I dostaje komunikat:
Komunikat: Something is wrong in your syntax obok '' w linii 1; Numer błędu: 1064
I nie moge sobie poradzić - przykładowe wywołanie print($query):
insert into ogloszenia (user,marka)values ('panda','13453')

Aha, wykonanie każdego kodu wygenerowanego przez ten skrypt działa bezproblemowo w PhpMyAdmin. Czyli błędów nie ma. Nie rozumiem.
nospor
wykonalem twój skrypt.
linijka
Kod
$query = $insert .= $value;

zwróciła mi insert bez value i jest błąd
powinno być
Kod
$query = $insert . $value;


A tak przy okazji strasznie zamotany ten kod

nie było by prościej:
Kod
$insert = "insert into ogloszenia (";
$value = "values (";
$przecinek=false;
foreach($_POST as $key => $val)
{
    if ($przecinek)
    {
        $insert.=',';
        $value.=',';
    }
    else $przecinek=true;
    
    $insert .= $key;
    if ($val != "")  $value .= "`".$val."`";
    else $value .= " NULL ";
}


$insert.= ")";
$value.= ")";
$query = $insert . $value;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.