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
Lesezeichen