Anzeige:
Ergebnis 1 bis 2 von 2

Thema: PHP und MySQL Transactions

  1. #1
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255

    PHP und MySQL Transactions

    Kann das wirklich sein das PHP 5.2.5 weder mysqli noch mysql mit Transaction klar kommt? Dieser Syntax funktioniert bei mir auf der Konsole und in einem C Script einwandfrei. Aber bei PHP streiken beide Extensions. mysql spukt mir die untere Fehlermeldung aus und mysqli macht gar nichts
    Code:
    START TRANSACTION;
    SELECT @lng:=IF( STRCMP(`main_lang`,'de'), 'en', 'de' )
    FROM `hjcms_main_data` WHERE  ( `main_activ` LIKE 1 ) ORDER BY `main_id` ASC;
    SELECT `main_id`, `main_type`, `main_title`, `main_body`, `main_modified`, `main_posted`
    FROM `hjcms_main_data`
    WHERE ( `main_type` RLIKE "news|about" AND `main_lang` LIKE @lng AND `main_activ` LIKE 1 )
    ORDER BY `main_type` ASC;
    COMMIT;
    PHP-Code:
    $QUERY = <<<EOT
    START TRANSACTION;
    SELECT @lng:=IF( STRCMP(`main_lang`,'de'), 'en', 'de' )
    FROM `hjcms_main_data` WHERE  ( `main_activ` LIKE 1 ) ORDER BY `main_id` ASC;
    SELECT `main_id`, `main_type`, `main_title`, `main_body`, `main_modified`, `main_posted`
    FROM `hjcms_main_data`
    WHERE ( `main_type` RLIKE "news|about" AND `main_lang` LIKE @lng AND `main_activ` LIKE 1 )
    ORDER BY `main_type` ASC;
    COMMIT;
    EOT;

    $result mysql_query$QUERY$con ) or die( mysql_errno$con ) );

    if( 
    $result )
    {
      while( 
    $row mysql_fetch_assoc$result ) )
      {
        foreach( 
    $row AS $k => $v )
        {
          
    var_dump$k$v );
        }
      }
      
    mysql_free_result$result );

    Code:
    Warning: mysql_query() [http://www.mysql.com/doc]: Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ';
    SELECT @lng:=IF( STRCMP(`main_lang`,'de'), 'en', 'de' )
    FROM `hjcms_main_data`' in Zeile 1 in $HOME/public_html/transactiontest.php on line 17
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Tja man sollte die Docu doch mal etwas besser lesen
    Hier die Lösung:
    PHP-Code:
    <?php

    $mysqli  
    mysqli_connect"localhost""owner""pass""db"3306"/var/lib/mysql/mysql.sock" );

    $QUERY = <<<EOT
    START TRANSACTION;
    SELECT @lng:=IF( STRCMP(`main_lang`,'de'), 'en', 'de' )
    FROM `main_data` WHERE  ( `main_activ` LIKE 1 ) ORDER BY `main_id` ASC;
    SELECT `main_id`, `main_type`, `main_title`, `main_body`, `main_modified`, `main_posted`
    FROM `main_data`
    WHERE ( `main_type` RLIKE "news|about" AND `main_lang` LIKE @lng AND `main_activ` LIKE 1 )
    ORDER BY `main_type` ASC;
    COMMIT;
    EOT;

    $query mysqli_multi_query$mysqli$QUERY ) or die( mysqli_error$mysqli ) );

    if( 
    $query )
    {
      do {
        if( 
    $result mysqli_store_result$mysqli ) )
        {
          
    $subresult mysqli_fetch_assoc$result );
          if( ! isset( 
    $subresult['main_id'] ) )
            continue;

          foreach( 
    $subresult AS $k => $v )
          {
            
    var_dump$k $v );
          }
        }
      } while ( 
    mysqli_next_result$mysqli ) );
    }

    mysqli_close$mysqli );

    ?>
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •