AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [PHP/SQP] INSERT INTO wird nicht ausgeführt
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP/SQP] INSERT INTO wird nicht ausgeführt

Ein Thema von TheMiller · begonnen am 30. Okt 2004 · letzter Beitrag vom 30. Okt 2004
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

[PHP/SQP] INSERT INTO wird nicht ausgeführt

  Alt 30. Okt 2004, 00:43
Hey Leute,

bin am verzweifeln... Habe diesen Code:

SQL-Code:
global $db_server,$db_user,$db_passwort, $db_name;
  $db = @MYSQL_PCONNECT($db_server,$db_user,$db_passwort)
    or die ("Konnte keine Verbindung zur Datenbank herstellen");
  $db_check = @MYSQL_SELECT_DB($db_name); if($db) echo "Verbindung zur Datenbank wurde hergestellt";

$result = mysql_query("INSERT INTO 11-04 (ra)
VALUES ('j')
");
$eintragen = mysql_query($result);
echo $result;
echo mysql_error();
Dann lade ich den Script hoch und führe ihn per Delpi so aus:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl : TStringlist;
begin
  sl := TStringList.Create;
  sl.Add('$db_server='+Edit1.Text);
  sl.Add('$db_name='+Edit2.Text);
  sl.Add('$db_user='+Edit3.Text);
  sl.Add('$db_passwort='+Edit4.Text);
  sl.Add('$mode=insert');
  Memo1.Text := idHttp1.Post('http://www.xxxx.com/xxxx.php',sl);
  FreeAndNil(sl);
end;
Das Memo übergibt nur den Fehler: Query was empty!

Aber warum? ist es doch nicht.

Ich möchte doch nur in die Tabelle 11-04 in die Spalte ra den Wert xy eintragen... Was mache ich da falsch?

Danke im Vorraus

Bye
  Mit Zitat antworten Zitat
Nightshade

Registriert seit: 7. Jan 2003
Ort: Menden
192 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: [PHP/SQP] INSERT INTO wird nicht ausgeführt

  Alt 30. Okt 2004, 00:52
Als ersten würde ich den Tabellennamen in Anführungsstriche setzen :

Delphi-Quellcode:
$result = mysql_query("INSERT INTO '11-04' (ra)
           VALUES ('j')");
Und die Aufruf Procedure darf die $ Zeichen nicht haben :

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl : TStringlist;
begin
  sl := TStringList.Create;
  sl.Add('db_server='+Edit1.Text);
  sl.Add('db_name='+Edit2.Text);
  sl.Add('db_user='+Edit3.Text);
  sl.Add('db_passwort='+Edit4.Text);
  sl.Add('mode=insert');
  Memo1.Text := idHttp1.Post('http://www.xxxx.com/xxxx.php',sl);
  FreeAndNil(sl);
end;
Ausserdem muss dann bei dem PHP RGISTER_GLOBALS an sein, sonst musst du im PHP-Script schreiben :
Delphi-Quellcode:
  $db = @MYSQL_PCONNECT($_POST['db_server'],$_POST['db_user'],$_POST['db_passwort'])
    or die ("Konnte keine Verbindung zur Datenbank herstellen");
  $db_check = @MYSQL_SELECT_DB($_POST['db_name']); if($db) echo "Verbindung zur Datenbank wurde hergestellt";
Christian
Killing for peace is like fucking for virginity

Nightshade
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

Re: [PHP/SQP] INSERT INTO wird nicht ausgeführt

  Alt 30. Okt 2004, 01:00
Hi,

also die $-Zeichen sind schon richtig, da sie ganz oben, außerhalb dieser Funktion, also Global-Deklariert sind. Und zwar folgendermaßen:

SQL-Code:
<?PHP
  $db_server=$_POST['$db_server'];
  $db_name=$_POST['$db_name'];
  $db_user=$_POST['$db_user'];
  $db_passwort=$_POST['$db_passwort'];
  $mode=$_POST['$mode'];
Ich habe den Tabellennamen in ' ' gesetzt, aber das Resultat ist das gleiche, wie vorhin...

/EDIT

Hier am besten der gesamte Script...

SQL-Code:
<?PHP
  $db_server=$_POST['$db_server'];
  $db_name=$_POST['$db_name'];
  $db_user=$_POST['$db_user'];
  $db_passwort=$_POST['$db_passwort'];
  $mode=$_POST['$mode'];
 

/*echo     $_POST['$db_server'].chr(13).chr(10);*/
/*echo     $_POST['$db_name'].chr(13).chr(10);*/
/*echo     $_POST['$db_user'].chr(13).chr(10);  */  
/*echo     $_POST['$db_passwort'].chr(13).chr(10);*/
/*echo     $test;*/

switch ($mode) {
  case "insert":
    insert();
    break;
}

function connect()
{
global $db_server,$db_user,$db_passwort, $db_name;
  $db = @MYSQL_PCONNECT($db_server,$db_user,$db_passwort)
    or die ("Konnte keine Verbindung zur Datenbank herstellen");
  $db_check = @MYSQL_SELECT_DB($db_name); if($db) echo "Verbindung zur Datenbank wurde hergestellt";

//////WIRD NICHT BENUTZT\\\\\\\

}


function insert()
{
global $db_server,$db_user,$db_passwort, $db_name;
  $db = @MYSQL_PCONNECT($db_server,$db_user,$db_passwort)
    or die ("Konnte keine Verbindung zur Datenbank herstellen");
  $db_check = @MYSQL_SELECT_DB($db_name); if($db) echo "Verbindung zur Datenbank wurde hergestellt";

$result = mysql_query("INSERT INTO '11-04' (ra)
VALUES ('j')
");
$eintragen = mysql_query($result);
echo $result;
echo mysql_error();
}
?>
  Mit Zitat antworten Zitat
Nightshade

Registriert seit: 7. Jan 2003
Ort: Menden
192 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: [PHP/SQP] INSERT INTO wird nicht ausgeführt

  Alt 30. Okt 2004, 01:38
Also ich würde das nicht so machen :

$mode=$_POST['$mode']; Ich weiss nicht wie PHP drauf reagiert.

Ich würd mal (Nur zum testen) in Delphi und bei den $_POST die $ weglassen :

$mode=$_POST['mode'];
Christian
Killing for peace is like fucking for virginity

Nightshade
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

Re: [PHP/SQP] INSERT INTO wird nicht ausgeführt

  Alt 30. Okt 2004, 01:42
Funzt auch nicht. Da regt sich dann garnichts. Es hatte ja schonmal funktioniert, aber ich depp musste natürlich noch was dran ändern und hatte keine Kopie...

An den $ liegt es nicht. Das kann ich ausschließen

Hast du vielleicht sonst noch eine Idee?

Meine Felddeklaration ist VarChar Und die Länge 5.
  Mit Zitat antworten Zitat
Nightshade

Registriert seit: 7. Jan 2003
Ort: Menden
192 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: [PHP/SQP] INSERT INTO wird nicht ausgeführt

  Alt 30. Okt 2004, 02:14
Damit kommt mein PHPMyAdmin nicht klar :

Code:
INSERT INTO '11-04'
SET ra = 'j'

MySQL meldet:


#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''11-04'
SET ra = 'j'' at line 1
Code:
INSERT INTO '11-04'( ra )
VALUES (

'j'
)

MySQL meldet:


#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''11-04'( ra )
VALUES (  'j' )' at line 1
Also Tabellennamen nicht in Anführungsstriche, d.h. aber auch keine arithmetischen zeichen wie - + * /

Versuch mal :

Code:
INSERT INTO a SET ra = 'j'
Christian
Killing for peace is like fucking for virginity

Nightshade
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#7

Re: [PHP/SQP] INSERT INTO wird nicht ausgeführt

  Alt 30. Okt 2004, 03:14
UM DAS DESASTER (ODER WIE MAN DAS SCHREIBT) ZU BEENDEN, HIER DER RICHTIGE CODE!!!

SQL-Code:
<?PHP
  $db_server=$_POST['$db_server'];
  $db_name=$_POST['$db_name'];
  $db_user=$_POST['$db_user'];
  $db_passwort=$_POST['$db_passwort'];
  $mode=$_POST['$mode'];
  $Datum=$_POST['$Datum'];
  $Zeit=$_POST['$Zeit'];
  $Name=$_POST['$Name'];
  $Wert=$_POST['$Wert'];

/*echo     $_POST['$db_server'].chr(13).chr(10);*/
/*echo     $_POST['$db_name'].chr(13).chr(10);*/
/*echo     $_POST['$db_user'].chr(13).chr(10);  */  
/*echo     $_POST['$db_passwort'].chr(13).chr(10);*/
/*echo     $test;*/

switch ($mode) {
  case "insert":
    insert();
    break;
  case "drop":
    drop();
    break;
}

function drop()
{
global $db_server,$db_user,$db_passwort, $db_name;
  $db = @MYSQL_PCONNECT($db_server,$db_user,$db_passwort)
    or die ("Konnte keine Verbindung zur Datenbank herstellen");
  $db_check = @MYSQL_SELECT_DB($db_name); if($db) echo "Verbindung zur Datenbank wurde hergestellt";
}


function insert()
{
global $db_server,$db_user,$db_passwort, $db_name, $Datum, $Zeit, $Mandant, $Ra;
  $db = @MYSQL_PCONNECT($db_server,$db_user,$db_passwort)
    or die ("Konnte keine Verbindung zur Datenbank herstellen");
  $db_check = @MYSQL_SELECT_DB($db_name); if($db) echo "Verbindung zur Datenbank wurde hergestellt";

$sql = mysql_query("INSERT INTO `1104` (`Datum`,`Zeit`,`Name`,`Wert`) VALUES ('$Datum', '$Zeit', '$Name', '$Wert')");
  $var = mysql_insert_id(); echo $var;
echo mysql_error();
}
?>
Ich weiß, dass die Zeile ("INSERT INTO `1104` (`Datum`,`Zeit`,`Name`,`Wert`) sehr seltsam aussieht, aber es funzt wunderbar!

Und ich kam folgendermaßen drauf. Wer PHPMyAdmin benutzt, wird es kennen.
Immer, wenn man eine Aktion durchführt, gibt PHPMYADMIN einen PHP oder SQL-Code aus. Diesen kopiert, in den Script eingebaut, keine Zeichen verändert und siehe da - es funzt!



Gute Nacht!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz