PHP - mysql_db_query()



  • Ich habe oft gesehen, dass viele nach einem query nicht direkt auf dem result-Array arbeiten, sondern es oft nochmal in ein zweites Array kopieren. Ich verstehe nur nicht, ob das so oft notwendig ist. Wird denn bei folg. Code das result-Array von der ersten Abfrage durch die zweite Abfrage überschieben? Ich denke nicht, weil sie ja auf eine andere var gelegt wird, oder zeigt mysql_db_query intern auf das gleiche Array?

    $res1 = mysql_db_query($db, $query1);
    $res2 = mysql_db_query($db, $query2);
    
    // ist es 100% sicher, dass $res1 hier noch die results von $query1 hat und nicht durch das zweite mysql_db_query intern irgdendwie überschrieben wurde?
    

    Da ich in PHP keine weiteren Erfahrungen habe: Wird bei $res = getData(); eine Referenz übergeben, oder eine Kopie des Arrays? Ich tipp mal auf eine Referenz!?

    function getData(){
     //...
     return mysql_db_query($db, $query1);
    }
    //...
    $res = getData();
    

    Vielen Dank!


  • Mod

    mysql_query() liefert eine resource - und resourcen sind referenzen-only und koennen nicht kopiert werden...



  • Die beiden Ressourcen greifen bei mysql_fetch_* auf verschiedene Ergebnisdatensätze zurück und sollten sich nicht in die Quere kommen. Die gesamten Ergebnisdaten jedes Mal komplett in ein Array zu kopieren halte ich für Speicher und Zeitverschwendung.

    PS zu mysql_db_query:
    "Anmerkung: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden."


Log in to reply