Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z INSERTEM - ciekawe, nie wiem co jest grane
Speed666
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.01.2005

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Speed666 17.01.2005, 09:37:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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;


Ten post edytował nospor 17.01.2005, 09:59:56


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 04:49