Ich weiss ich weiss dieses Thema kommt schon zum xten mal dran. Ich habe alle Foren durchsuch, was gefunden, hat mir aber leider nichts gebracht. Daher erstelle ich jetzt mal ein Thema.
Ich Versuche einfach nur eine Variable in eine SQL Datenbank (MySQl Win32 5.0) zu schreiben.
Meine PHP Version: 5.1.6
PHP.ini wie folgt ergänzt:
extension = „php_mysql.dll“ Version 5.1.5.5
extension = „libmysql.dll“
extension= „php_gd2.dll“ Version 5.1.7.7
Als Fehlermeldung bekomme ich immer: Insert Error!
Ich finde leider in den Log`s vom MySQL leider nichts. Wenn ich diesen Befehl insert… ohne Variablen, dafür mit Werte ersetze und im PHPmyAdmin einfüge, funktionierts.
Wäre echt nett von euch wenn Ihr ein paar Tips für mich hättet.
Den Code in Deinem letzten Beitrag verstehe ich nicht (sehe kein Zusammenhang zum Problem).
Ansonsten $result mal mit echo ausgeben und überprüfen, notfalls Code kopieren und direkt im SQL-Fenster ausführen (ggf. Ausführung nach der Ausgabe mit die() abbrechen.
ist das Datumsformat korrekt eingestellt? Ich habe mit den Datumformaten immer wieder mal Probleme. Es kann sein, dass Dein ODBC-Treiber etwas anderes will, als Dein SQL-Server.
Probiere erst mal einen Insert mit Inteegerzahlen und Strings (einfach eine neue Tabelle test2 erzeugen mit int zahl und varchar(200) textfeld).
Dann sollte:
INSERT INTO test2 (zahl, textfeld) VALUES ( 120,‚dat is en Text, ne‘)
Die Mysql-Extensions verwenden zum Glück kein ODBC.
echo $result;
die();
->wird auch nur „“ ausgeben, da lt. Definition nur true/false bei DML zurück kommt.
Besser wäre
echo mysql_error();
Man kann dem Server auch das Datumsformat vorgeben, wenn es kein Standard wie schon erwähnt ist, z.B. STR_TO_DATE(‚04/31/2004‘, ‚%m/%d/%Y‘) -> ‚2004-04-31‘.
Die Formate stehen im Mysql-Handbuch.
ich hätte da noch eine kleine Frage zu einem SQL export. Dachte mir einfach ich greife meinaltes Thread wieder auf
Ich hab eine Datenbank in der meine Stomkosten stehen. Ich wollte jetzt im Designer eine Möglichkeit haben Diese als Kosten kummuliert dar zu stellen. Meine Idee ist das per Script die Daten aus der SQL Datenbank zu lesen und diese in eine Variable zu Speichern.
Das SQL Query wäre folgendes:
SELECT date, SUM( kwstd )
FROM `strom`
WHERE `date` LIKE '2008-05-%'
GROUP BY `date`
LIMIT 0 , 90
Das Ergebnis sieht wie folgt aus:
2008-05-01 221.430999964476
Wie bekomme ich die Daten von dem SQL Query in die Variable ?
Ich stehe glaug ich auf dem Schlauch…
Hier mein nicht funktionierendes Script:
<?
/*
*******************************
IP-SYNCOM Event Scripting
*******************************
*/
//File: gesamt.ips.php
$db= "ips_andy";
$server= GetValueString("sql_server");
$user= GetValueString("sql_user");
$passw= GetValueString("sql_passw");
// zur Datenbank verbinden
$dbh=mysql_connect("$server", "$user", "$passw", "$db");
if (!$dbh) {
echo "Connect error!";
exit;
}
// benutze Datenbank ips_andy
$db_selected = mysql_select_db('ips_andy', $dbh);
if (!$db_selected) {
die ('Kann $db nicht benutzen : ' . mysql_error());
}
$result = mysql_query("SELECT date, SUM( kwstd ) FROM `strom` WHERE `date` LIKE '2008-05-%' GROUP BY `GROUP` LIMIT 0, 90 ");
SetValueFloat("designer_strom", ????????????? );
echo $result;
die();
echo mysql_error();
if (!$result) {
echo "Insert1 Error!";
}
?>
danke erstmal für deine Hilfe. Ich habe jetzt nur das Problem, das das $result Ergebnis immer „Resource id #3“. Eigendlich sollte hier ja " 2008-05-01 221.430999964476" kommen.
Wenn ich den SQL Befehl
SELECT date, SUM( kwstd ) FROM `strom` WHERE `date` LIKE '2008-05-%' GROUP BY `GROUP` LIMIT 0, 90
in dem PHP-Administrator Admin abschicke kommt das richtige Ergebnis.
am Sonntag-Vormittag und ohne Blick ins Handbuch würde ich jetzt mal sagen, dass du das Ergebnis noch auslesen musst. Schau mal im Manual unter mysql_fetch_row.