Hi!
ich möchte gerne etwas in eine Datenbank schreiben vorher soll aber geprüft werden ob das eingegeben schon in einer andeeren Relation vorhanden ist.
Das ist, wenn man es in zwei Schritten macht, immer kritisch zu betrachten, weil zwischen den beiden Schritten in einer üblicherweise vorhandenen Multithread-Umgebung andere Threads dir ins Handwerk pfuschen können. Besser ist es, einen Unique-Index zu erstellen und einfach die Daten einzufügen. Wenn es dann zu einem Unique-Constraint-Fehler kommt, den du auswerten musst, weißt du, dass die Daten schon vorhanden sind. Wenn nicht, wurden sie erfolgreich hinzugefügt. Allerdings weiß ich nicht genau, was du unter "anderer Relation" verstehst. Meinst du damit einen anderen Datensatz der selben Tabelle?
$ergebnis = $db->prepare($stmt);
$ergebnis->bind_param('s', $tmp);
$ergebnis->execute();
Der Variablennamen $ergebnis ist irreführend, da du an die Ergebnisdatensätze erst irgendwann mit dem Fetch-Vorgang gelangst. In $ergebnis befindet sich die ganze Zeit jedoch ein (Prepared) Statement (nicht zu verwechseln mit dem SQL-Statement-String, der sich bei dir in $stmt befindet.)
$ergebnis1 = $db->query( $ergebnis );
Die Methode query() erwartet einen SQL-Statement-String und kein Prepared Statement.
Hier würde ich das eingeben jetzt statt "test1" speichern.
Diesen Satz versteh ich nicht. Magst du ihn nochmal verständlich schreiben?
Das ganze funktioniert leider nicht. Kann mir wer helfen?
Du solltest stets die Rückgabewerte der Funktionen auswerten und bei Indikation eines Fehlers diesen (zumindest beim Entwickeln) mit den dafür vorgesehenen Funktionen abfragen. Dann bist du auch aussagekräftiger als mit einem "funktioniert nicht". Weiterhin ist die Funktion var_dump() hilfreich, mit der man sich vom genauen Inhalt von Variablen überzeugen kann. Und natürlich ein auf E_ALL stehendes error_reporting nebst eingeschaltetem display_errors.
Lo!