Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Kein Eintrag in MSSQL-DB [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Kein Eintrag in MSSQL-DB


 
felix_a
30-05-2003, 11:34 
 
Hallo Forum,

ich habe ein Problem mit MSSQL:
ich greife über PHP auf eine MSSQL-DB zu und möchte im PHP-Skript dem Benutzer über eine CHECKBOX die Möglichkeit geben, zu einem Thema "JA" oder "NEIN" anzukreuzen. In der entsprechenden Tabellenspalte möchte ich dann auch nur "O" oder "1" stehen haben, aber:
ich kriege überhaupt keinen Eintrag in der Tabellenspalte.
Meine Variable in PHP wird mit einem Wert gefüllt, alles kein Problem, aber nix in der Spalte. Ich habe es schon mit nvarchar, int, char und binary probiert, aber nichts zu machen. Außerdem habe ich alle Variablen-Bezeichnungen überprüft, ich habe mich NICHT verschrieben ;-).
Any ideas?
Danke

 
Abraxax
30-05-2003, 11:39 
 
wie wäre es mit mehr info, zb. den code von dir... ;)

 
felix_a
30-05-2003, 11:58 
 
Okay, hier kommt der Code...
PHP/HTML:
<form>
<table>
<tr>
<td><input type="checkbox" name="erledigt" value='<? echo $erledigt; ?>'>erledigt</td>
</tr>
</table>
</form>

etc...

If-Klausel:
if (isset($erledigt))
{
$erledigtDB = "Y";
}
else
{
$erledigtDB = "N";
}
echo $erledigtDB;


SQL:
Nur die Abfrage (gekürzt)
$sql = "Insert into $tabellenname (erledigt) values ('$erledigtDB')";

Verbindung zur DB ist gegeben, der Rest der Abfrage funktioniert auch.
Sollte doch klappen, oder habe ich da einen eklatanten Denkfehler?

php.tags powered by Abraxax

 
Abraxax
30-05-2003, 12:12 
 
was ist hier für eine ausgabe, wenn du das testest?$sql = "Insert into ".$tabellenname." (erledigt) values ('".$erledigtDB."')";
$res = mysql_query($sql) or die(mysql_error);

und wenn du diesen code statt deinem noch zusätzlich änderst?if (isset($_POST["erledigt"]))
{
$erledigtDB = "Y";
}
else
{
$erledigtDB = "N";
}
echo $erledigtDB;

 
felix_a
30-05-2003, 13:04 
 
Hi,

sorry, hatte noch eine Besprechung eben.
Also:
Habe die Skripte verändert nach deinen Vorschlägen. Fakt ist, dass aus der Variablen über den "echo"-Befehl immer die richtigen Werte (Y,N) ausgegeben werden, aber trotzdem nichts in der DB landet. Kurioserweise werden alle anderen Felder (Auswahllistenfelder und Textareas) korrekt an die DB übergeben. Im Moment hat das entsprechende Tabellenfeld in der SQL-DB den Datentyp 'nvarchar'. Ich wollte eigentlich ursprünglich den Datentyp 'int' benutzen, um mir nur '0' oder '1' ausgeben zu lassen, aber egal.
Mit 'nvarchar' muss es doch funktionieren, oder? Ich bin ratlos....

 
Abraxax
30-05-2003, 13:11 
 
ich kenne nvarchar nicht, da ich ja mit mysql arbeite. das prinzip sollte aber das gleiche sein.

muss du da nciht nvarchar(1) oder so schreiben? was ist mit dem feldtyp ENUM?

 
felix_a
30-05-2003, 13:18 
 
'nvarchar' entspricht 'varchar' bei MySQL, stimmt.

Den Feldtyp 'enum' bietet MSSQL nicht an, aber das ist nicht das Problem.
Wenn ich einen string´, also "Y", an die DB übergebe, erwarte ich ja, dass der string als Wert einer Variablen in der Tabellenspalte erscheint.

Das tut er aber nicht, unabhängig vom Feldtyp. Heul!!!:(
Was nun? Liegt es an der MSSQL-Datenbank?

 
Abraxax
30-05-2003, 13:36 
 
Original geschrieben von felix_a
Was nun? Liegt es an der MSSQL-Datenbank? ob es an deiner DB liegt weiss ich nicht. hast du phpmyadmin drauf oder was ähnliches?

dann teste doch mal deine query alleine.

 
felix_a
30-05-2003, 13:39 
 
Es ist unglaublich:
ich habe die if-Schleife der Checkbox-Variablen außerhalb der Schleife mit der INSERT-Anweisung gesetzt. Dann KANN es ja nicht funzen.
Zum Heulen.
Trotzdem Danke für dein Engagement und schönes WE!!!
Felix

:eek: :eek: :eek:

 
Abraxax
30-05-2003, 13:41 
 
tja. wie einfach ein fehler sein kann... :D

dir auch ein schönes warmes WE.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:36 Uhr.