Avatar billede dcheng Novice
16. december 2006 - 16:29 Der er 3 kommentarer og
1 løsning

Troubleshoot, noget i denne som ikke virker i PHP 4?

Er der noget i denne kode som virker med PHP5.1.2 men ikke i PHP4.4.4

Det er nemlig som om da jeg havde flyttet sitet over på den anden server så virker ingen SQL... som bruger Execute()

+++++KODEN+++++
function Execute($var,$sql)
{
    include "sec/config.php";
    // Set global var
    global $$var;
    // Connect to server
    $conn = @mysql_connect($db_host,$db_user,$db_pass);
    if (!$conn) {
      die("<B>mysql_connect() fejl</B> " . mysql_error() . "<BR>");
    }
    // Selecting DB
    $db = @mysql_select_db($db_name, $conn);
    if (!$db) {
      die ("<B>mysql_select_db() fejl</B> " . mysql_error() . "<BR>");
    }
   
    // Running sql query
    if (mysql_query($sql)) {
        $$var = mysql_affected_rows($conn);
        return true;
    } else {
        $$var = mysql_error();
        return false;
    }

    mysql_close($conn);
}
+++++++++++
Avatar billede erikjacobsen Ekspert
16. december 2006 - 16:34 #1
Der skulle ikke være noget, der ikke virker i PHP4. Hvordan ytrer det sig, det der med at det ikke virker?
Avatar billede dcheng Novice
16. december 2006 - 16:44 #2
Det er måske ikke noget med den at gøre så... men her er der den fejler..

Den mælder ikke fejl den det opfører sig bare ikke på samme måde som op min egen php 5 server.. forskellen er på den for() loop som er på linie 44 (der hvor jeg skriver echo $l; // printer "0") Den burde jo køre den 378 gange men den kører den kun 1 gang..

<?
session_start();
header("Cache-control: private");
include "sec/config.php";
include "sec/functions.php";
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// SPEED COUNTER
$mtime = explode( " " , microtime() );
$tstart = $mtime[1] + $mtime[0];
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>
<LINK rel="stylesheet" type="text/css" href="css/style.css">
<H1 class="h1-update">XXXXXX.dk update script</H1>
<TABLE border="1">
    <TR><TD colspan="2"><B><U>inetpris.csv</U></B></TD></TR>
    <TR><TD><B>SQL</B></TD><TD><B>Fejl</B></TD></TR>
<?
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// inetpris.csv
    $Records = null;
    $Temp = null;
    $Lines = null;
    $Lines = file("updates/inetpris.csv");
    for ($l = 0; $l < count($Lines);$l++)
    {
        $Temp = explode(";",$Lines[$l]);
        $counter = 0;
        $Records[$l]["number"] = rTrim((string)$Temp[$counter++]);
        $Records[$l]["name"] = rTrim((string)$Temp[$counter++]);
        $Records[$l]["price"] = rTrim((string)$Temp[$counter++]);
    }

    $sql = "DELETE from varer";
    if(Execute("output",$sql)) {
        echo "<TR class=\"update-green\"><TD><B>".$sql."</B></TD><TD><B>".$output."</B></TD></TR>";
        $sql = "ALTER TABLE varer AUTO_INCREMENT = 0";
        Execute("output",$sql);
        echo "<TR class=\"update-green\"><TD><B>".$sql."</B></TD><TD><B>".$output."</B></TD></TR>";
        $s_counter = 0;
        $e_counter = 0;;
echo count($Records); // printer "378"
        for ($l = 0; $l < count($Records);$l++)
        {
echo $l; // printer "0"
//            if($Records[$l]["number"]<7000) {
                $group = str_split($Records[$l]["number"]);
                $sql = "INSERT INTO varer (number,name,price,gr) VALUES ('".Escape($Records[$l]["number"])."','".Escape($Records[$l]["name"])."','".str_replace(",", ".", Escape($Records[$l]["price"]))."','".Escape($group[0])."')";
                if(Execute("output",$sql)) {
                    $s_counter = $s_counter+1;
                } else {
                    $e_counter = $e_counter+1;
                    echo "<TR class=\"update-red\"><TD><B>".$sql."</B></TD><TD><B>".$output."</B></TD></TR>";
                }
    //        }
        }
        echo "<TR class=\"update-green\"><TD><B><I>Antal udførte SQL sætninger</I></B></TD><TD><B>".$s_counter."</B></TD></TR>";
    } else {
        echo "<TR class=\"update-red\"><TD><B>".$sql."</B></TD><TD><B>".$output."</B></TD></TR>";
    }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>
</TABLE>
<?
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// SPEED COUNTER
$mtime = explode( " " , microtime() );
$totaltime = ( ($mtime[1] + $mtime[0]) - $tstart);
echo "Load tid: ".$totaltime." sekunder";
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>
Avatar billede dcheng Novice
16. december 2006 - 17:04 #3
fundet fejlen str_split() as of PHP5 :(
Avatar billede erikjacobsen Ekspert
16. december 2006 - 17:45 #4
Ja, det er da derfor ;)    Fik du ikke en fejlbesked fra PHP?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester