Hallo
Ich bin absoluter Anfänger in Sachen Programmierung und Datenbank.
Ich habe mit php einen einfachen Code (eine kalender) geschrieben und in der datenbank postgresql auch über phpPgAdmin eine Tabelle erstellt.
Nun weiß ich aber nicht, was ich meinen Code noch hinzufügen muss, damit er
sich ersten mit dem Server verbindet und zweitens die Daten ein und ausschreibt.
mit mysql hat das geklappt, aber ich muss von mysql auf postgresql umsteigen, danke für eure Hilfe. Für das Verständnis habe ich mal alle code eingegeben. Es ist nur ein kleines Programm. Ich hoffe, das ist okay.
function mysqlConnect(){
$connection = new mysqli("##SERVER##", "##NUTZERNAME##", "##PASSWORT##", "##TABELLENNAME##");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$connection->query("SET NAMES 'utf8'");
return $connection;
Du verwendest überall mysql - Funktionen. Zum einen sind die deprecated, zum anderen vollständig ungeeignet, sich mit einem PostgreSQL-DB-Server zu verbinden. Dafür gibt es eigene Funktionen in PHP, guggst Du: http://php.net/manual/de/function.pg-connect.php
Es gibt auch PDO-Treiber, um via PHP -> PDO auf PostgreSQL zuzugreifen.
Noch etwas: Du übergibst POST-Werte völlig ungeprüft an die DB. Beschäftige Dich bitte mit “SQL-Injection”. Und, weil ich grad sehe: in PostgreSQL verwendet man andere Quote-Zeichen als für MySQL.
Ach ja: grad sehe ich, du mischt mysqli und mysql - Funktionen. Auch das geht nicht - nicht einmal mit MySQL.
ich bin kein PHP-Mensch, sieht aber soweit optisch okay aus. Beachte aber: das ist nur die Verbindung, das ist noch kein Abschicken von Befehlen und kein Empfangen von Daten. Aber dafür gibt es gute und reichliche Doku, die Google auch kennt.
Hallo
Kannst du mir sagen, ob die postgresql commands stimmen? Wäre sehr dankbar. (P.S.select wird auch in der PHP Docu verwendet)
db.php:
// Connecting, selecting database
$dbconn = pg_connect("host=ma-landau dbname=postgres user=??? password=???")
or die('Could not connect: ' . pg_last_error());
// Performing SQL query
$query = 'SELECT * FROM kalender';
$result = pg_query($query) or die('Query failed: ' . pg_last_error());
}
index.php:
setlocale(LC_TIME, "de_DE");
require_once "db.php";
function getMittwoch($y, $m)
{
return new DatePeriod(
new DateTime("first wednesday of $y-$m"),
DateInterval::createFromDateString('next wednesday'),
new DateTime("last day of $y-$m")
);
}
function getVeranstaltung($tagWert){
$dbconn = pg_connect("dbname=postgres");
$result=pg_exec($connection_id, "SELECT * veranstaltung from kalender WHERER 'tag'=$tagWert");
return $result->pg_fetch_assoc();
}
addtermin.php:
<?php
require_once "db.php";
$veranstaltung = $_POST['veranstaltung'];
$tag = $_POST['tag'];
if( !empty($tag) || !empty($veranstaltung) ){
$dbconn = pg_connect("dbname=postgres");
$query='INSERT INTO `kalender` (tag, veranstaltung) VALUES ($tag, \"$veranstaltung\")';
echo "<p>Die angegebenen Änderungen wurden übernommen. Vielen Dank.</p><br>";
echo "<a href='index.php'>Zurück</a>";
} else {
echo "<p>Es wurde entweder kein Tag oder kein Termingrund eingetragen! <br>";
echo "Keine Änderungen wurden übernommen.</p><br>";
echo "<a href='index.php'>Zurück</a>";
}
?>
Warum probierst Du es nicht? Warum machst Du bei solchen Dingen wie folgt keine Prüfung auf Fehler?
$dbconn = pg_connect("dbname=postgres");
$query='INSERT INTO `kalender` (tag, veranstaltung) VALUES ($tag, \"$veranstaltung\")';
echo "<p>Die angegebenen Änderungen wurden übernommen. Vielen Dank.</p><br>";
Wie soll der $query-String überhaupt auf die DB kommen? Warum nutzt Du die postgres-Datenbank und erstellst keine separate für die Anwendung?
Dein :
SELECT * veranstaltung from kalender WHERER 'tag'=$tagWert"
enthält mindestens 3 Fehler. Solltest Du das Konstrukt je zum laufen bekommen und im Internet zugänglich machen, wird es Dir vermutlich innerhalb von Stunden durch SQL-Injection zerbröseln.
Alles in allem hast Du zuerst einmal ein ganz massives PHP-Nichtwissen-Problem, das ist aber hier OffTopic.
Hallo
Ich weiß, dass ich ne NULL bin in Sachen Programmierung. Als geisteswissenschaftler fehlt mir auch die Affinität dafür.
Versuche es aber.
Habe die postgres DB genommen , weil das sonst nicht geklappt hat mit der erstellung der DB. Habe keine Berechtigung, stand dort jedenfalls.
Habe folgende probleme:
Ich will mich mit der postgresql db verbinden , die auch auf dem server ist.
ich will, dass er abfragt, ob es einträge gibt
die einträge in die entsprechende zeilen anfügen
neue einträge speichern
irgendwie finde ich kein buch , dass mir zeigt, wie ich das mit php machen kann, sondern immer über eine shell unter linux.
wäre dankbar für einen guten lehrer
Der Datenbank- bzw. SQL-Teil Deiner Fragen ist simpel: zum Abfragen SELECT, zum Einfügen INSERT. Der Rest ist PHP und hier weitestgehen OffTopic. Bücher zu PHP gibt es mehr als Sand am Meer, die PHP-Funktionen zum Verbinden mit PostgreSQL und zum Abschicken von Abfragen / abholen von Ergebnissen hast Du, glaube ich, auch schon gefunden.
Die Wahl, als Datenbank PostgreSQL zu nehmen, ist absolut in Ordnung, und wenn Du ganz konkrete Fragen zu SQL allgemein oder PostgreSQL an sich hast bist Du hier auch absolut richtig, aber mit PHP kann ich (und wohl fast alle hier) Dir nicht helfen.