| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

10-05-2007, 13:23
|
|
Mc Coke
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 10
|
|
PDO Prepared Statement - Zugriff auf Oracle liefert kein Ergebnis
Hallo,
ich habe da mal wieder ein Problem mit PDO. Wenn ich eine "normale" Abfrage auf die
Oracle-Datenbank durchführe, bekomme ich ein Ergebnis.
"normale" Abfrage:
PHP-Code:
try {
$artnr="10277";
$dbh = new PDO("oci:dbname=db", "scott", "tiger");
foreach ($dbh->query("SELECT BESTAND FROM TABELLE WHERE ARTIKEL=$artnr) as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
...mit prepared Statements bekomme ich nun leider überhaupt nichts zurückgeliefert. Weder eine Fehlermeldung noch ein Ergebnis.
prepared Statement:
PHP-Code:
try {
$artnr="10277";
$dbh = new PDO("oci:dbname=db", "scott", "tiger");
$stmt = $dbh->prepare("SELECT BESTAND FROM TABELLE WHERE ARTIKEL=?");
$stmt->bindParam(1,$artnr);
$stmt->execute();
$row = $stmt->fetch();
print_r($row);
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
So, ich hoffe Ihr könnt mir mal wieder weiterhelfen!
MfG
Mc Coke
|

10-05-2007, 16:23
|
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
dann zeig mal var_dump()s von $dbh, errorInfo(), $row und $stmt. was passiert, wenn du das fragezeichen einfach manuell durch die nummer ersetzst? (kannst bind dann weglassen).
|

11-05-2007, 14:49
|
|
Mc Coke
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 10
|
|
Sorry, das ich erst so spät schreibe. Hier meine Ergebnisse:
PHP-Code:
var_dump($stmt):
object(PDOStatement)#2 (1) { ["queryString"]=> string(60) "SELECT BESTAND FROM TABELLE WHERE ARTIKEL = '?' " }
PHP-Code:
var_dump($row);
bool(false)
PHP-Code:
var_dump($dbh);
object(PDO)#1 (0) { } bool(false)
gibt nichts aus!
MfG
Mc Coke
|

11-05-2007, 15:08
|
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
definiere $artnr als eine zahl und nicht als string. und rufe bindParam so auf, dass als datentyp int angegeben wird.
und errorInfo / errorCode sind methoden deines pdo-objektes.
auf was ist error_reporting gesetzt?
|

11-05-2007, 16:04
|
|
Mc Coke
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 10
|
|
Ich habe error_reporting auf:
E_ALL & ~E_NOTICE & ~E_Strict
stehen.
Mit den Datentypen INT funktioniert es leider auch nicht.
MfG
Mc Coke
|

11-05-2007, 16:22
|
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
stelle es auf E_ALL.
und zeig mal, was du tust. "geht nicht" kannst du dir sparen.
vor allem var_dump des statements.
|

16-05-2007, 16:10
|
|
Mc Coke
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 10
|
|
So,
error_reporting steht jetzt auf E_All. Wenn ich folgendes ausführe, bekomme ich leider immer noch keine Fehlermeldung:
PHP-Code:
try {
$artnr="10277";
$dbh = new PDO("oci:dbname=db", "scott", "tiger");
$stmt = $dbh->prepare("SELECT BESTAND FROM TABELLE WHERE ARTIKEL=?");
$stmt->bindParam(1,$artnr);
if ($stmt->execute()) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
PHP-Code:
var_dump($stmt);
liefert folgendes:
object(PDOStatement)#2 (1) { ["queryString"]=> string(61) "SELECT BESTAND FROM TABELLE WHERE ARTIKEL=?" }
|

16-05-2007, 21:14
|
|
tontechniker
PHP Senior
|
|
Registriert seit: Jul 2005
Beiträge: 1.972
|
|
Gib doch mal nen Typ an - PDO::PARAM_INT (und die Zahl als Integer). Es wird nichts ausgeben? Warum zerstörst du das Objekt?
|

18-05-2007, 07:45
|
|
Mc Coke
Newbie
|
|
Registriert seit: Aug 2006
Beiträge: 10
|
|
Nein, ich bekomme gar nichts ausgegeben!
Mit
PHP-Code:
$stmt->bindParam(':atl', $item_name, PDO::PARAM_STR,
12);
funktionierts leider auch nicht.
Mit schließe ich die Verbindung zur Datenbank.
MfG
Mc Coke
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|