Antworten auf deine Fragen:
Neues Thema erstellen

PDO / MySQL Verständnisfrage

Kadey

Nicht mehr ganz neu hier

Hallo zusammen,

ich blicke bei meinen Codebeispiel nicht so ganz durch.
Code:
<?php

$DB = array('dbname'=>"DBNAME", 'user'=>"DBUSER",
            'passwort' => "DBPASSWORD");

$connect = "mysql:dbname=".$DB['dbname'].";host=localhost";
try
{
  $dbh = new PDO($connect, $DB['user'], $DB['passwort'] );
  
  $sql = "SELECT a_name, a_preis FROM ws_artikel WHERE a_menge > 0";
  
  $result = $dbh->query($sql);
  $tmp = $result->fetchAll (PDO::FETCH_ASSOC);
  
  foreach ($tmp as $key => $value)
  {
  print $key.". <strong>Artikel:</strong> ".$value['a_name']." <strong>Preis:</strong> ". $value['a_preis']."<br/>\n";
  }
  
  $dbh = null; # Zerstört das Objekt und schließt die Verbindung
}
catch(PDOException $e)
{
  echo $e->getMessage();
}
?>
Habe hier eine einfache Abfrage in der Try-Anweisung....
Wenn ich nun aber noch eine zusätzeliche Aufgabe erfüllen möchte z.B. Update, Insert, Delete...
Wo müsste diese denn stehen ???? Blicke da nicht ganz durch..

mfg
 

Duddle

Posting-Frequenz: 14µHz

AW: PDO / MySQL Verständnisfrage

Du kannst die zusätzliche Anweisungen nach Aufbau der Datenbankverbindung und vor dem "Zerstören" des Objektes ausführen. Wo genau ist dabei (fast) egal.



Duddle
 

Kadey

Nicht mehr ganz neu hier

AW: PDO / MySQL Verständnisfrage

Kann ich nicht auch die ganzen Anweisungen in Functions packen ???
Die dann in ner neuen Datei auslagern und darauf zugreifen wenn nötig ?
 

Duddle

Posting-Frequenz: 14µHz

AW: PDO / MySQL Verständnisfrage

Ja, natürlich kannst du das machen. Die Funktion muss dann nur irgendwie auf das Datenbank-Objekt zugreifen können (oder zur Not ein neues erzeugen).


Duddle
 

Talirion

People Fotograf

PSD Beta Team
AW: PDO / MySQL Verständnisfrage

Du solltest aber in diesem fall keine einzelnen Funktionen sondern eine class verwenden.

Dieser übergibst du dann z.b. Im construktor die dB Connection und kannst dann einfach Funktionen der klasse aufrufen...

Lg
Talirion
 

Kadey

Nicht mehr ganz neu hier

AW: PDO / MySQL Verständnisfrage

Naja, soviel Ahnung habe ich ja nun auch nicht...aber schaut mal bitte hier...
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<?php
if (isset($_POST["eintragen"]))
{

$DB = array('dbname'=>"DBNAME", 'user'=>"DBUSER",
            'passwort' => "DBPASSWORD");
$connect = "mysql:dbname=".$DB['dbname'].";host=localhost";
try
    {
      $dbh = new PDO($connect, $DB['user'], $DB['passwort'] );
    ###print "PDO-Verbindung hergestellt.<br/>";
  
      $_POST['name'] = $name;
    $_POST['nachname'] = $nachname;
    $sql = "INSERT INTO namenspeicher (n_id, n_name, n_nachname) VALUES (NULL, $name, $nachname)";
  
    $dbh = null; # Zerstört das Objekt und schließt die Verbindung
    }
catch(PDOException $e)
    {
      echo $e->getMessage();
    }
}

?>


<body>
<p>Sagen Sie mir bitte Ihren Namen<br/>
und senden Sie das Formular ab.</p>
<form action="index.php" method="post">
<p><input name="name" />Name:</p>
<p><input name="nachname" />Nachname:</p>
<p><input type="submit" name="eintragen" value="eintragen" /></p>
</form>
</body>
</html>
Die Datenbank habe ich angelegt und die zuständigen Tabellen auch...die Verbinung zur DB funktioniert, aber wenn ich nun meine Eingaben machen und sende...wird mir nichts in die DB eingetragen...
Erstelle ich allerdings einen manuellen Eintrag und lese ihn aus..funzt es ..

Mfg
 

Kadey

Nicht mehr ganz neu hier

AW: PDO / MySQL Verständnisfrage

Ja ich weis...habe es schon selbst bemerkt ;(...Mein Problem habe ich auch lösen können..
Hatte die query vergessen...
 
E

earlthegrey

Guest

AW: PDO / MySQL Verständnisfrage

$_POST und $_GET IMMER überprüfen.

PHP:
if (isset($_GET['area'])){
	$g_area = $_GET['area'];
	if (!preg_match('/^[0-3]?$/', $g_area)){unset($g_area);}
	unset($g_nid);
}

Hier wird gepüft ob es sich um eine Zahl von 0-3 handelt, wenn nicht wird die Variable gelöscht.

Machst du das nicht, wirst du leicht Opfer einer SQL-Injection.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben