Tach!
bool(false) 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 'to,subject, msg) VALUES (500,'wqe', 'wqe')' at line 1
Das heißt, MySQL mag an der Stelle kein "to". Ein "from" übrigens auch nicht. "select" oder "insert" als Spaltenname ließen sich ebenfalls schlecht von den den gleichnamigen Schlüsselwörtern unterscheiden. Solange ein Spaltenname nicht auch mit einem syntaktischen Element verwechselt werden kann, ist alles in Ordnung. Um eine Verwechslung auch für Schlüsselwörter auszuschließen, kann man den Spaltennamen in Backticks
einfassen. Alternativ kann man einen Namen wählen, der nicht verwechselbar ist.
Auf Fehler zu reagieren, ist nicht nur wichtig, um solche im Prinzip vermeidbaren Syntaxfehler zu finden. Datenbanksysteme sind auch mal aus anderen Gründen vorübergehend oder dauerhaft nicht erreichbar. Der Ausfall kann auch erst nach einem erfolgreichen Connect auftreten. Robuste Programme fragen deswegen immer die Rückgabewerte ab und reagieren angemessen darauf. Was angemessen ist, muss im Einzelfall bestimmt werden. Und das nicht nur aus Programmierersicht, sondern auch am besten auch aus Anwender- und aus Administratorsicht. Das oftmals zu sehende "or die()" ist selten eine angemessene Reaktion.
dedlfix.