sql_mode = STRICT_ALL_TABLES

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

sql_mode = STRICT_ALL_TABLES

Postby codewappler » 19. February 2007 18:17

Hi

Also ich möchte, dass wenn in ein Feld Daten eingetragen werden die nicht dem Typ entsprechen, SQL das nicht erlaubt und einen Error liefert. Dazu hab ich mit "google" herausgefunden, dass folgendes helfen sollte:

set sql_mode="STRICT_ALL_TABLES";

Das Problem ist der folgende SQL Satz:

show variables like "sql_mode";

Zeigt bei mir dann zwar die Variable "sql_mode" an, sie hat aber keinen Wert.

Kann mir jemand sagen wie ich mysql dazu bringe keine Typenkonvertierung durchzuführen wenn der Wert nicht passt, sondern die Eingabe nicht erlaubt und einen Error ausspuckt? Am besten währe wenn man diese Verhalten spezifisch nur für eine Datenbank setzen könnte. Geht das?

Danke für alle Tipps!
codewappler
 
Posts: 16
Joined: 12. January 2007 11:37

Postby Wiedmann » 19. February 2007 18:52

Code: Select all
show variables like "sql_mode";

Zeigt bei mir dann zwar die Variable "sql_mode" an, sie hat aber keinen Wert.

Du hast aber schon genau davor eben dies gemacht?:
Code: Select all
set sql_mode="STRICT_ALL_TABLES";


BTW:
Was für einen MySQL-Server hast du dann?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby codewappler » 19. February 2007 20:17

Ja klar hab ich vorher das gemacht.

Meine sql server Version ist im rpm paket: mysql-server-5.0.22-2.1.

Das wird doch wohl die richte version sein oder?
codewappler
 
Posts: 16
Joined: 12. January 2007 11:37

Postby Wiedmann » 19. February 2007 20:53

Ja klar hab ich vorher das gemacht.

Mit was?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby codewappler » 19. February 2007 22:27

Mit phpmyadmin.

Konnte mich aus unerklärlichen gründen nicht aufd er linux shell mit "mysql" in den server einloggen.

Nachtrag:

Gibts da vieleicht php functionen, die einen bestimmten string darauf überprüfen obe er für einen SQL Datentyp past. Wenn ich das alles mit zig "switch" und "if" anweisungen selbst überprüfen muss, dann wird das erstens ein totales "klumpert" und zweitens binn ich in einem jahr auch nicht damit fertig?

Bitte um Hilfe
codewappler
 
Posts: 16
Joined: 12. January 2007 11:37

nochwas

Postby codewappler » 19. February 2007 23:47

Nochwas

Gibt es keine function oder klasse oder was immer in php die folgendes kann:

function nimmt php string datentyp (z.b eine POST Variable) und überprüft ob der inhalt dieses strings auf einen mysql datentyp past ohne, dass daten verlohren gehen???
codewappler
 
Posts: 16
Joined: 12. January 2007 11:37

Postby Wiedmann » 20. February 2007 00:41

Mit phpmyadmin.

Darin liegt dein Problem.
Bei 2 verschiedene Abfragen, gibt es bei diesem Script ja 2 verschiedene Connections. Und eine (MySQL) Session-Variable die du in in der ersten Abfrage setzt, ist dann in der 2. Abfrage nicht mer so gesetzt, da neue Connection (Session).

Gibts da vieleicht php functionen, die einen bestimmten string darauf überprüfen obe er für einen SQL Datentyp past.

Das machen eigentlich fast alle Datenbankabstraktionsklassen.

ohne, dass daten verlohren gehen???

Sondern?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby codewappler » 20. February 2007 18:24

Danke einstweilen "Datenbankabstraktionsklassen" war das Stichwort. Sollt ich selbst schreiben, oder google benutzen?
codewappler
 
Posts: 16
Joined: 12. January 2007 11:37


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 1 guest