Anbei der php-Code mit den ich den Fehler erhalte.
Dem Script zum Auslesen fehlt lediglich der Teil von:
// Erstellen der 1. Tabelle
und
//auslesen der Datensaetze
Die Tabellen werden zwar erzeugt, das Problem tritt aber ziemlich sicher auf, wenn ich die Tabellen nicht lösche, also in die bestehenden, geleerten Tabellen schriebe.
Interessant ist auch das bei einer Fehlerhaften übernahme dies im schreibenden Script nicht bemerkt wird, was eine Fehlerbehehandlung sehr aufwendig macht.
Der php-Test-Code hat keine Klassen, später sollen jedoch auch Klassen verwendet werden.
Ich sehe es auch eher Programmiersprachenunabhängig, da ich das Problem auch in Cpp mit der c-api hatte.
- Code: Select all
<?php
try
{
$Server = mysql_connect("localhost", "root", "");
if (!$Server)
{
throw new exception("can't connect: ".mysql_error());
}
if(true != mysql_select_db("test1", $Server))
{
$result = mysql_query('CREATE DATABASE IF NOT EXISTS '."test1", $Server);
if (!$result)
{
throw new exception("Datenbank konnte nicht erstellt werden ".mysql_error());
}
}
// Erstellen der 1. Tabelle
if(!mysql_query("CREATE TABLE if not exists tblTest1(test char(15) NOT NULL, testInt INT NULL, Constraint PK Primary Key(test))", $Server))
throw new exception("Fehler: ".mysql_error());
// Eintragen von Datensaetzen
if(!mysql_query("INSERT INTO tblTest1(test, testInt) VALUES('00', 1)", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest1(test, testInt) VALUES('01', 1)", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest1(test, testInt) VALUES('02', 1)", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest1(test, testInt) VALUES('03', 1)", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest1(test, testInt) VALUES('04', 1)", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest1(test, testInt) VALUES('05', 1)", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest1(test, testInt) VALUES('06', 1)", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest1(test, testInt) VALUES('07', 1)", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest1(test, testInt) VALUES('08', 1)", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest1(test, testInt) VALUES('09', 1)", $Server)) throw new exception("Fehler: ".mysql_error());
// Erstellen der 2. Tabelle
if(!mysql_query("CREATE TABLE if not exists tblTest2(test char(15) NOT NULL, dt DATE NULL, Constraint PK Primary Key(test))", $Server))
throw new exception("Fehler: ".mysql_error());
// Eintragen von Datensaetzen
if(!mysql_query("INSERT INTO tblTest2(test, dt) VALUES('01', '1979/11/14')", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest2(test) VALUES('02')", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest2(test) VALUES('03')", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest2(test) VALUES('04')", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest2(test) VALUES('05')", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest2(test) VALUES('06')", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest2(test) VALUES('07')", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest2(test) VALUES('08')", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest2(test) VALUES('09')", $Server)) throw new exception("Fehler: ".mysql_error());
if(!mysql_query("INSERT INTO tblTest2(test) VALUES('10')", $Server)) throw new exception("Fehler: ".mysql_error());
echo "<h1>Fertig</h1>";
echo "<h2>Test1</h2>";
//auslesen der Datensaetze
$result = mysql_query("SELECT * FROM tblTest1", $Server);
if (!$result)
{
throw new exception("Datenbank konnte nicht gelesen werden ".mysql_error());
}
while($row=mysql_fetch_array($result))
{
echo "test = ".$row['test']."<br>\n";
}
echo "<h2>Test2</h2>";
$result = mysql_query("SELECT * FROM tblTest2", $Server);
if (!$result)
{
throw new exception("Datenbank konnte nicht gelesen werden ".mysql_error());
}
while($row=mysql_fetch_array($result))
{
echo "test = ".$row['test']."<br>\n";
}
echo "<br>\n";
echo '<a href="writeDB_readonly.php">Nur Lesen</a><br><br><br><br><br><br>';
}
catch(exception $Fehler)
{
echo $Fehler->getMessage()."\n";
}
?>