Simon: Fehlermeldung bei DB abfrage

Hi,
hab da ein kleines Problem und komm nicht dahinter was bei folgenden Script falsch ist:
Fehlermeldung:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in blablabla on line 127

118   $hostUrl = $settings['db_hostUrl'];  
119   $userName = $settings['db_userName'];  
120   $password = $settings['db_password'];  
121   $connectID = mysql_connect($hostUrl, $userName, $password)  
122     or die ($lang['sorry_none_connection_db']);  
123   mysql_select_db($settings['db_name'], $connectID)  
124     or die ($lang['sorry_none_db_select']);  
125   $myDataID = mysql_query("UPDATE ".$settings['db']." SET cred='$password1_md5' WHERE code='$code_submitted' AND email='$email_submitted'", $connectID)  
125     or die ($lang['sorry_none_db_select']);  
126   $matching_id = mysql_result($myDataID,0,0);  
127   return $matching_id;

Hoffe dass mir jemand helfen kann

MfG Simon

  1. Hoffe dass mir jemand helfen kann

    mysql_error() kann sicher.

    1. mysql_error() kann sicher.

      Hilft mir leider nicht weiter

      1. Hi,

        mysql_error() kann sicher.

        Hilft mir leider nicht weiter

        Solche Aussagen helfen auch nicht weiter.
        Wenn du ein Verständnisproblem hast, dann frage bitte konkret nach.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. n'abend,

    125   $myDataID = mysql_query("UPDATE ".$settings['db']." SET cred='$password1_md5' WHERE code='$code_submitted' AND email='$email_submitted'", $connectID)
    125     or die ($lang['sorry_none_db_select']);
    126   $matching_id = mysql_result($myDataID,0,0);

    UPDATE ist nicht SELECT. UPDATE, INSERT, DELETE (und noch etliche andere) liefern dir keine Daten. Du kannst bei diesen Abfragen nur in Erfahrung bringen wie viele Datensätze verändert wurden, siehe mysql_affected_rows().

    Du solltest dir angewöhnen deine Werte, speziell wenn sie vom Benutzer kommen, in den SQL-Kontext zu übertragen (, um SQL-Injection zu verhindern).

    mysql_query( 'UPDATE '. $settings['db']. '  
        SET `cred` = "'. mysql_real_escape_string( $password_md5 ) .'"  
      WHERE `code` = "'. mysql_real_escape_string( $code_submitted ) .'"  
        AND `email` = "'. mysql_real_escape_string( $email_submitted ) );
    

    weiterhin schönen abend...

    --
    #selfhtml hat ein Forum?
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. n'abend,

      »» 125   $myDataID = mysql_query("UPDATE ".$settings['db']." SET cred='$password1_md5' WHERE code='$code_submitted' AND email='$email_submitted'", $connectID)
      »» 125     or die ($lang['sorry_none_db_select']);
      »» 126   $matching_id = mysql_result($myDataID,0,0);

      UPDATE ist nicht SELECT. UPDATE, INSERT, DELETE (und noch etliche andere) liefern dir keine Daten. Du kannst bei diesen Abfragen nur in Erfahrung bringen wie viele Datensätze verändert wurden, siehe mysql_affected_rows().

      Du solltest dir angewöhnen deine Werte, speziell wenn sie vom Benutzer kommen, in den SQL-Kontext zu übertragen (, um SQL-Injection zu verhindern).

      mysql_query( 'UPDATE '. $settings['db']. '

      SET cred = "'. mysql_real_escape_string( $password_md5 ) .'"
        WHERE code = "'. mysql_real_escape_string( $code_submitted ) .'"
          AND email = "'. mysql_real_escape_string( $email_submitted ) );

      
      >   
      > weiterhin schönen abend...  
        
      Perfekt danke  
      MfG  
      Simon
      
    2. Du solltest dir angewöhnen deine Werte, speziell wenn sie vom Benutzer kommen, in den SQL-Kontext zu übertragen (, um SQL-Injection zu verhindern).

      Auch be gewöhnlichen, nicht böswilligen Anfragen an den Server können Daten ankommen, die speziell zu behandelnde Zeichen beinhalten. Escaping ist nicht primär da um Injections zu verhindern.