I don't know why, i can't insert a new line into my db table
I use this query:
$db->write("INSERT INTO sest$myYear (esiti, esitiPositivi, esitiNegativi, ambi, nTerni, terno, sestina) VALUES ($esiti, $esitiPositivi, $esitiNegativi,$ambi,$nTerni,$terno,$sestinaString )");
Variables are declared before and they are int and string. If I use the same query into a query sql, it works. I'm using debugging and there aren't mistakes. The software executes the query and goes on.
I tried with a similar query like:
$db->write("INSERT INTO sest$myYear (esiti, esitiPositivi, esitiNegativi, ambi, nTerni, terno, sestina) VALUES ('$esiti', '$esitiPositivi', '$esitiNegativi','$ambi','$nTerni','$terno','$sestinaString' )");
But nothing, it's the same.
I tried also another query into another table (through php) and it works. So the problem is in this query.
If you need more information, ask me.
EDIT:
This is my definition for tables and variables.
$esiti = $sestinaObj[0][1];
$esitiPositivi = $sestinaObj[1][1];
$esitiNegativi = $sestinaObj[2][1];
$nTerni = $sestinaObj[3][1];
$ambi = $sestinaObj[4][1];
$sestina = $sestinaObj[5][1];
$colpi = $sestinaObj[6][1];
$terno = $sestinaObj[7][1];
I know that I can use directly $sestinaObj into the query.
This is the method
function isMyComposition($ventiCinqueEstraz, $quad, $successive, $db, $myYear){
$db = new DBM();
// if(count($ventiCinqueEstraz) <= 25) return false;
$sestina = array(0,0,0,0,0,0);
$colpi = 0;
$count = 0;
$posizione = 0;
while($count < 2){
for($i=0; $i<25; $i++){//NON FUNZIONA
$sestinaObj= array(
array("esiti",0),
array("esitiPositivi",0),
array("esitiNegativi",0),
array("nterni",0),
array("ambi",0),
array("sestina",array(0,0,0,0,0,0)),
array("colpi",0),
array("terno",0)
);
$sestina = addOccurenceComp($quad, $sestina, array( $ventiCinqueEstraz[$count][$i]['uno'],
$ventiCinqueEstraz[$count][$i]['due'],
$ventiCinqueEstraz[$count][$i]['tre'],
$ventiCinqueEstraz[$count][$i]['quattro'],
$ventiCinqueEstraz[$count][$i]['cinque']),$db,$myYear);
$result = $db->read("SELECT sestina FROM sest$myYear where sestina = $sestina ");
for($j=25; $j<50; $j++){
$sestinaObj = checkSestina($sestinaObj, $sestina, $quad, $colpi, $posizione, array( $ventiCinqueEstraz[$count][$j]['uno'],
$ventiCinqueEstraz[$count][$j]['due'],
$ventiCinqueEstraz[$count][$j]['tre'],
$ventiCinqueEstraz[$count][$j]['quattro'],
$ventiCinqueEstraz[$count][$j]['cinque']),$db,$myYear);
}
$esiti = $sestinaObj[0][1];
$esitiPositivi = $sestinaObj[1][1];
$esitiNegativi = $sestinaObj[2][1];
$nTerni = $sestinaObj[3][1];
$ambi = $sestinaObj[4][1];
$sestina = $sestinaObj[5][1];
$colpi = $sestinaObj[6][1];
$terno = $sestinaObj[7][1];
if(count($result) <= 0){
$insertResultTerni = $db->read("SELECT Colpi from terni where colpi = $colpi");
if($insertResultTerni[0]['Colpi'] == "")
$db->write("INSERT INTO terni (colpi) values ($colpi)");
$sestinaString = implode(" ",$sestina);
$db->write("INSERT INTO sest2016 (esiti, esitiPositivi, esitiNegativi, ambi, nTerni, terno, sestina) VALUES ($esiti, $esitiPositivi, $esitiNegativi,$ambi,$nTerni,$terno,$sestinaString )");
}
else {
$insertResultTerni = $db->write("INSERT INTO terni (colpi) values ($colpi)");
$esiti = mysql_real_escape_string($esiti);
$db->write("INSERT INTO sest$myYear (esiti, esitiPositivi, esitiNegativi, ambi, nTerni, terno, sestina) VALUES (0,0,0,0,0,0,0)");
}
}
$count++;
}
}
I know that the code is very very ugly
Edit 2:
Now I tried to change all column type into varchar and converted every variables to string. I have the same problem.
$esiti = !empty((string)$sestinaObj[0][1]) ? (string)$sestinaObj[0][1] : "";
$esitiPositivi = !empty((string)$sestinaObj[1][1]) ? (string)$sestinaObj[1][1] : "";
$esitiNegativi = !empty((string)$sestinaObj[2][1]) ? (string)$sestinaObj[2][1] : "";
$nTerni = !empty((string)$sestinaObj[3][1]) ? (string)$sestinaObj[3][1] : "";
$ambi = !empty((string)$sestinaObj[4][1]) ? (string)$sestinaObj[4][1] : "";
$sestina = !empty((string)$sestinaObj[5][1]) ? implode(" ", $sestina) : "";
$colpi = !empty((string)$sestinaObj[6][1]) ? (string)$sestinaObj[6][1] : "" ;
$terno = !empty((string)$sestinaObj[7][1]) ? (string)$sestinaObj[7][1] : "";
$db->write("INSERT INTO sest2016 (esiti, esitiPositivi, esitiNegativi, ambi, nTerni, terno, sestina) "
. "VALUES ($esiti, $esitiPositivi, $esitiNegativi,$ambi,$nTerni,$terno,$sestina)");
This is the table definition