Hallo zusammen
ich habe Probleme nach dem PHP Upgrade auf 7.3 mit den Funktionen zu MySQL.
Ein Wechsel von mysqli_* zu PDO klappt soweit, jedoch habe ich Probleme mit dem Einlesen von Daten
DB Connect ist okay, Selects ebenfalls
Jedoch beim Insert bekomm ich nach einigen Hundert Zeilen einen Fehler bezogen auf eine INT Column
Ich weiss dass der Code nicht professionell und sauber aussieht, aber ich hoste das Game und es ist von mysql_* nach mysqli_* grad so zum Laufen gekommen - doch jetzt weiss ich nicht weiter
Ich bekomme 90% der korrekt Zeilen geladen - dann kommt dieser Fehler.
Wir haben 5 Ligen und je 18 Spieltage
Bei Liga5 bekomm ich grad die ersten 4 Einträge in die Tabelle "tm:nm:tabellen" - müssten aber 18*5 Zeilen und 18*1 Zeile in tm_nm:ansetzungen"
Danke vorab schon mal
appi
ich habe Probleme nach dem PHP Upgrade auf 7.3 mit den Funktionen zu MySQL.
Ein Wechsel von mysqli_* zu PDO klappt soweit, jedoch habe ich Probleme mit dem Einlesen von Daten
DB Connect ist okay, Selects ebenfalls
Jedoch beim Insert bekomm ich nach einigen Hundert Zeilen einen Fehler bezogen auf eine INT Column
Uncaught PDOException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '' for column
PHP-Code:
$querya = "INSERT INTO tm_nm_ansetzungen
(saison, spieltag, status, liga, hometeam_id, awayteam_id,
erggesa, erggesb, qugesa, qugesb) VALUES ";
$queryb = "INSERT INTO tm_nm_tabellen
(saison, spieltag, liga, wo, status, team_id, siegeges, unentschiedenges,
niederlagenges, toreges, toregegenges, quoteges, quotegegenges) VALUES ";
########
## abschlußtabellen ermitteln (querys aufstellen)
########
$query = "SELECT teams.old_names AS team, tab.team_id, liga,
(sum(siegeges)+sum(unentschiedenges)+sum(niederlagenges)), sum(siegeges),
sum(unentschiedenges), sum(niederlagenges), (3*sum(siegeges)+sum(unentschiedenges)),
sum(toreges), sum(toregegenges), (sum(toreges)-sum(toregegenges)),
sum(quoteges),sum(quotegegenges)
FROM tm_nm_tabellen tab
LEFT JOIN tm_nm_teams teams
USING (team_id)
WHERE saison='$alte_saison'
AND teams.old_names<>''
GROUP BY tab.team_id
ORDER BY 3 ASC, 8 DESC, 11 DESC, 9 DESC";
$result=$db_connection->prepare($query);
$result->execute();
$result2 = $result->fetch();
$num = $result->rowCount();
print_r($num);
echo '<br>';
for ($i=1;$i<51;$i++)
{
$row=$result->fetch();
$alt[$i]=$row['team']; //aenderung von team in team_id
}
########
## neue ligenzusammensetzung ermitteln
########
for ($i=1;$i<51;$i++)
{
$liga=bcdiv($i-1,10,0)+1;
$nr=bcmod($i-1,10)+1;
$neue_ligen[$liga][$nr]=$alt[$team[$i]]; // anderung: entfernt
//$neue_ligen[$liga][$nr] = $alt[$i]; // aenderung hinzu
}
########
## ansetzungen+++tabellendaten in datenbank schreiben
########
for ($liga=1;$liga<6;$liga++)
{
for ($halbserie=1;$halbserie<3;$halbserie++)
{
for ($spieltag=1;$spieltag<10;$spieltag++)
{
for ($spiel=1;$spiel<6;$spiel++)
{
if ($halbserie==1)
{
$team1=$neue_ligen[$liga][$spielplan[$spieltag][$spiel][1]];
$team2=$neue_ligen[$liga][$spielplan[$spieltag][$spiel][2]];
$tag=$spieltag;
} else {
$team1=$neue_ligen[$liga][$spielplan[$spieltag][$spiel][2]];
$team2=$neue_ligen[$liga][$spielplan[$spieltag][$spiel][1]];
$tag=$spieltag+9;
}
$query_db_ans_ins=$querya."('$neue_saison','$tag','0','$liga', '" . $all_teams[$team1] . "','" . $all_teams[$team2] . "','0','0','0','0')";
$query_db_tab_ins1=$queryb."('$neue_saison','$tag','$liga','h','0','" . $all_teams[$team1] . "','0','0','0','0','0','0','0')";
$query_db_tab_ins2=$queryb."('$neue_saison','$tag','$liga','a','0','" . $all_teams[$team2] . "','0','0','0','0','0','0','0')";
$db_connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result=$db_connection->prepare($query_db_ans_ins);
//$result->execute(array($query_db_ans_ins)) or exit (print_r($query_db_ans_ins->errorInfo()));
$result->execute(array($query_db_ans_ins));
print_r($query_db_ans_ins);
echo '<br>';
$result1=$db_connection->prepare($query_db_tab_ins1);
//$result1->execute(array($query_db_tab_ins1)) or exit (print_r($query_db_tab_ins1->errorInfo()));
$result1->execute(array($query_db_tab_ins1));
print_r($query_db_tab_ins1);
echo '<br>';
$result2=$db_connection->prepare($query_db_tab_ins2);
//$result2->execute(array($query_db_tab_ins2)) or exit (print_r($query_db_tab_ins2->errorInfo()));
$result2->execute(array($query_db_tab_ins2));
print_r($query_db_tab_ins2);
echo '<br>';
}
# echo "<hr>";
}
}
# echo "<hr>";
for ($l=1;$l<11;$l++)
{
$team=$neue_ligen[$liga][$l];
$query_db_tab_ins3=$queryb."('$neue_saison','0','$liga','h','2','" . $all_teams[$team] . "','0','0','0','0','0','0','0')";
$query_db_tab_ins4=$queryb."('$neue_saison','0','$liga','a','2','" . $all_teams[$team] . "','0','0','0','0','0','0','0')";
$result=$db_connection->prepare($query_db_tab_ins3);
$result->execute(array($query_db_tab_ins3)) or die ("mist3-query_db_tab_ins3");
$result=$db_connection->prepare($query_db_tab_ins4);
$result->execute(array($query_db_tab_ins4)) or die ("mist4-query_db_tab_ins4");
}
}
Ich bekomme 90% der korrekt Zeilen geladen - dann kommt dieser Fehler.
Wir haben 5 Ligen und je 18 Spieltage
Bei Liga5 bekomm ich grad die ersten 4 Einträge in die Tabelle "tm:nm:tabellen" - müssten aber 18*5 Zeilen und 18*1 Zeile in tm_nm:ansetzungen"
Danke vorab schon mal
appi
Kommentar