php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.12.2011, 18:53  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard Wo ist der Hund begraben?

Hi zusammen,

ich fühle mich hier gerade sehr verarscht von nachfolgendem Statement! Wo zum Henker ist der Hund begraben?

PHP-Code:
    $db = new MySQLi('host''user''pass''db');
    
$stmt $db->prepare('INSERT INTO private_msgs SET from = ?, to = ?, topic = ?, message = ?, timestamp = ?');
    
$stmt->bind_param('sssss'$from$to$topic$message$timestamp);
    
$stmt->execute();
    
$stmt->close(); 
Die Tabellenstruktur ist korrekt und das Statement stimmt auch zu 100% damit über ein.
Die Variablen sind Strings und sind auch identisch vom Namen her.

Er wirft mir den Fehler "call to a member function bind_param on a non-object". Könnte gerade total am Rad drehen

Ich weiß, ich habe die Verbindung nicht geschlossen. Das liegt daran, dass ich die Verbindung im Regelfall nicht an dieser Stelle aufbaue.

Das MUSS ein extremer leichtsinnsfehler sein aber ich finde ihn nicht...

Geändert von Solu (17.12.2011 um 18:57 Uhr).
Solu ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.12.2011, 18:56  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

$db->prepare() hat keine Resource geliefert, weil die SQL Syntax falsch ist...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 17.12.2011, 18:59  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Haha, da ist er! Mann, mann echt! Vielen dank Isteglitz

EDIT: Ich war zu schnell, ich nutze dieses Statement bei jedem Insert. Und hat auch bisher immer funktioniert. Zuletzt vor einer halben Stunde. Häh?!
Solu ist offline   Mit Zitat antworten
Alt 17.12.2011, 19:13  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

from ist ein reserviertes Wort.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 17.12.2011, 19:14  
Erfahrener Benutzer
 
Registriert seit: 10.11.2011
Beiträge: 268
PHP-Kenntnisse:
Fortgeschritten
Solu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ach ja klar >.<
Danke!
Solu ist offline   Mit Zitat antworten
Alt 18.12.2011, 08:31  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Ich empfehl dir das eher via PDO zu machen, mySQLi bietet relativ wenig "Übersicht" bei prepared Statements:

PHP-Code:
$db = new PDO('mysql:host=localhost;dbname=db''user''pass'); //init

$sqlQuery =
   
'INSERT INTO private_msgs ( sender, receiver, topic, message, timestamp ) '.
   
'VALUES ( :sender, :receiver, :topic, :message, :timestamp )';

$stmt $db->prepare($sqlQuery); 
$stmt->bindValue(':sender'$senderPDO::PARAM_STR);
$stmt->bindValue(':receiver'$receiverPDO::PARAM_STR);
$stmt->bindValue(':topic'$topicPDO::PARAM_STR);
$stmt->bindValue(':message'$messagePDO::PARAM_STR);
$stmt->bindValue(':timestamp'$messagePDO::PARAM_STR);
$stmt->execute();

// "reset" query
$stmt->closeCursor();

// or trash
unset($stmt); 
Spätestens bei Inserts mit ~25+ Feldern wird dein mysqli-gedingse schön übersichtlich, und das Query ebenfalls.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 18.12.2011, 12:59  
Erfahrener Benutzer
 
Benutzerbild von fireweasel
 
Registriert seit: 20.03.2010
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
fireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblick
fireweasel eine Nachricht über ICQ schicken fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken fireweasel eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
from ist ein reserviertes Wort.
Dann sollte er es mit "from" (falls sich sein MySQL stur stellt wahlweise mit `from`) versuchen.
fireweasel ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Captcha Wo ist der Hund begraben ? myoddo PHP Einsteiger 17 18.12.2011 09:36
[Erledigt] Kleine Abänderung in der SQL abfrage maclaim1988 Datenbanken 3 02.09.2010 10:25
Cookie-Problem: Wo liegt der Hund begraben? SvenLittkowski PHP Tipps 2006 6 03.04.2006 22:39
Da wird der Hund in der Pfanne verrückt… php_frage Off-Topic Diskussionen 5 30.01.2006 23:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
$stmt->db->prepare(insert into timestamp

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:30 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum