PHP не переходит в базу данных mysql

Итак, я новичок в PHP и пытаюсь создать скрипт, который берет все данные из базы данных mysql, которая у меня есть о ценах на акции, а затем смотрит, произошло ли увеличение цены акций во время торговли в нерабочее время (путем сравнения одного цена закрытия дня с ценой открытия следующего дня). Я настроил несколько подобных скриптов, которые работают, но по какой-то причине этот скрипт не копирует данные в мою базу данных sql, и я совершенно не понимаю, почему этого не произойдет. Когда я настроил эхо-операторы, я обнаружил что мой код, похоже, выполняется везде, но данные не передаются. Любая помощь приветствуется.

<?php
include("../includes/connect.php");

function masterLoop(){
$mainTickerFile = fopen("../tickerMaster.txt","r");
while (!feof($mainTickerFile)){
    $companyTicker = fgets($mainTickerFile);
    $companyTicker = trim($companyTicker);

    $nextDayIncrease = 0;
    $nextDayDecrease = 0;
    $nextDayNoChange = 0;
    $total = 0;
    $overnight_change = 0;
    $overnight_change_pct = 0;

    $sumOfIncreases = 0;
    $sumOfDecreases = 0;

    $sql = "SELECT date, open, close, percent_change FROM $companyTicker";
    $result = mysql_query($sql);


    if($result){
        while($row = mysql_fetch_array($result)){
            $date = $row['date'];
            $percent_change = $row['percent_change'];
            $open = $row['open'];
            $close = $row['close'];
            $sql2 = "SELECT date, open, close, percent_change FROM $companyTicker WHERE date > '$date' ORDER BY date ASC LIMIT 1";
            $result2 = mysql_query($sql2);
            $numberOfRows = mysql_num_rows($result2);


            if($numberOfRows==1){
                $row2 = mysql_fetch_row($result2);
                $tom_date= $row2[0];
                $tom_open= $row2[1];
                $tom_close= $row2[2];
                $tom_percent_change= $row2[3];
                if ($close == 0){
                    $close = $tom_open;
                    }
                $overnight_change = $tom_open - $close;
                $overnight_change_pct = ($overnight_change/$close)*100;


                if($overnight_change_pct > 0){
                    $nextDayIncrease++;
                    $sumOfIncreases += $tom_percent_change;
                    $total++;

                }else if($overnight_change_pct < 0){
                    $nextDayDecrease++;
                    $sumOfDecreases += $tom_percent_change;
                    $total++;
                }else{
                    $nextDayNoChange++;
                    $total++;
                }

            }else if ($numberOfRows==0){
                $total = 1;
                $nextDayIncrease = 1;
                $nextDayDecrease = 1;
            }else{
                echo "You have an error in analysis_c3";
            }
        }
    }else{
        echo "unable to select $companyTicker <br />";
    }
    $nextDayIncreasePercent = ($nextDayIncrease/$total) * 100;
    $nextDayDecreasePercent = ($nextDayDecrease/$total) * 100;
    $averageIncreasePercentage = $sumOfIncreases/$nextDayIncrease;
    $averageDecreasePercentage = $sumOfDecreases/$nextDayDecrease;
    insertIntoResultTable($companyTicker, $nextDayIncrease, $nextDayIncreasePercent, $averageIncreasePercentage, $nextDayDecrease, $nextDayDecreasePercent, $averageDecreasePercentage);
}
}


function insertIntoResultTable($companyTicker, $nextDayIncrease, $nextDayIncreasePercent,     $averageIncreasePercentage, $nextDayDecrease, $nextDayDecreasePercent, $averageDecreasePercentage){

$buyValue = $nextDayIncreasePercent * $averageIncreasePercentage;
$sellValue = $nextDayDecreasePercent * $averageDecreasePercentage;
    $trueValue = $buyValue + $sellValue;

$query="SELECT * FROM analysisOvernightGain5 WHERE ticker='$companyTicker' ";
$result=mysql_query($query);
$numberOfRows = mysql_num_rows($result);

if($numberOfRows==1){
    $sql = "UPDATE analysisOvernightGain5 SET ticker='$companyTicker',daysInc='$nextDayIncrease',pctOfDaysInc='$nextDayIncreasePercent',avgIncPct='$averageIncreasePercentage',daysDec='$nextDayDecrease',pctOfDaysDec='$nextDayDecreasePercent',avgDecPct='$averageDecreasePercentage',buyValue='$buyValue',sellValue='$sellValue'trueValue='$trueValue' WHERE ticker='$companyTicker' ";
    mysql_query($sql);
}else{
    $sql="INSERT INTO analysisOvernightGain5 (ticker,daysInc,pctOfDaysInc,avgIncPct,daysDec,pctOfDaysDec,avgDecPct,buyValue,sellValue,trueValue) VALUES ('$companyTicker', '$nextDayIncrease', '$nextDayIncreasePercent', '$averageIncreasePercentage', '$nextDayDecrease', '$nextDayDecreasePercent', '$averageDecreasePercentage', '$buyValue', '$sellValue','$trueValue')";
    mysql_query($sql);
}
}

masterLoop();
?>

person John Mathews    schedule 23.04.2013    source источник
comment
Вы смотрели на mysql_error для INSERT/UPDATE?   -  person Explosion Pills    schedule 23.04.2013
comment
Измените все операторы mysql_query($sql) на mysql_query($sql) or die (mysql_error()), чтобы увидеть, не возникает ли ошибка.   -  person Barmar    schedule 23.04.2013
comment
Это ошибка, которую я получаю, но я действительно не знаю, что с этим делать. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'trueValue='1.92496358566', WHERE ticker='A'' в строке 1   -  person John Mathews    schedule 23.04.2013


Ответы (1)


вы пропустили , в ,sellValue='$sellValue'trueValue='$trueValue' должно быть ,sellValue='$sellValue',trueValue='$trueValue'

person Amir    schedule 23.04.2013
comment
Спасибо, кажется, получилось! Я немного смущен, потому что я копирую и вставляю этот скрипт в качестве шаблона из другого, который у меня есть, и в нем также отсутствует эта запятая, но этот скрипт все еще работает. - person John Mathews; 23.04.2013
comment
Это странно для меня... возможно, скрипт не доходит до конкретного оператора для отображения синтаксической ошибки. я не уверен, но, возможно, синтаксическая ошибка оператора mysql в PHP, обнаруженная во время выполнения - person Amir; 23.04.2013