Hallo zusammen
1. Meine Tabelle habe ich wie folgt definiert:
CREATE TABLE stammbaum
(
id
varchar(30) NOT NULL default '',
name
varchar(50) default '',
vater
varchar(40) default '',
mutter
varchar(40) default '',
....
status
char(1) default NULL,
PRIMARY KEY (id
)
) TYPE=MyISAM;
2. Nun möchte ich einen neuen Datensatz wie folgt einfügen:
<?php
if (!function_exists("GetSQLValueString"))
{
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO stammbaum (id, name, vater, mutter, ..... , status) VALUES (%s, %s, %s, %s, ...., %s)",
GetSQLValueString($_POST['los'], "text"),
GetSQLValueString($_POST['name'], "text"),
GetSQLValueString($_POST['vater'], "text"),
GetSQLValueString($_POST['mutter'], "text"),
....
GetSQLValueString($_POST['status'], "text"));
mysql_select_db($database_reader, $reader);
$Result1 = mysql_query($insertSQL, $reader) or die(mysql_error());
}
3. Bei der Tabellenstruktur habe ich name, vater, mutter usw extra als Default-Wert '' gewählt.
Aber: Warum wird dort NULL hineingeschrieben??? Ich brauche in diesen Feldern einen leeren Wert, wenn ich beim Eingabeformular nichts angebe. Wer kann mir weiterhelfen?
Beim Einfügen eines Datensatzes mit phpmyadmin funktioniert es einwandfrei.
Für alle Anregungen bin ich dankbar.