dedlfix: PDO / MSSQL / Stored Procedure

Beitrag lesen

Hi!

$bu_name = 'test';

$sql = 'EXEC butablecheck test';
$stmt = $db->prepare($sql);
$stmt->bindParam(1, $bu_name);
$stmt->execute();

  
Sehr gut, das Reduzieren des Codes auf das Wesentliche hilft, sich ohne störendes Beiwerk auf den Fehler zu konzentrieren. Und siehe da, weg ist er. Das Problem steckt also im Beiwerk. - Jedoch, zu früh gefreut. Ich vermisse in deinem $sql-String den Platzhalter, an dessen Stelle später der gebundene Wert eingefügt werden soll. $bu\_name kommt hier also gar nicht zum Einsatz, was aber essentiel für deine gewünschte Funktionalität ist und somit in einem Nachbau wirksam vorhanden sein muss.  
  

> for($j=0;$j<=$groesse\_arr-1;$j++) {  
>     $bu\_name = $result[$j][0];  
  
Bitte mal an der Stelle den Inhalt von $bu\_name und $result[$j][0] mit var\_dump() ausgeben.  
  

> Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[42000]: Syntax error or access violation: 102 [Microsoft][ODBC SQL Server Driver][SQL Server]Falsche Syntax in der Nähe von '@tablename'. (SQLExecute[102] at ext\pdo\_odbc\odbc\_stmt.c:133)  
  
Ich muss mich vermutlich revidieren, was die Fehlermeldungsquelle angeht. PHP spricht kein deutsch, schon gar nicht fängt es erst englisch an fährt dann deutsch fort. Die Meldung "Falsche Syntax ..." kommt also doch vom MS SQL Server.  
  

> Das kann doch jetzt nichts mehr so wildes sein, oder?  
  
Ich bin jedenfalls erst einmal mit meinem Latein am Ende.  
  
  
Lo!