2016-07-26 7 views
-4

Kann mir jemand helfen, dieseFehler in der SQL-Syntax (zitiert ??? !!!)

<?php 
$file_name = basename(__FILE__,'.php'); 
include("conf.php"); 
include("XMLSoccer.php"); 

$years = 1; ///<-------NUMBER OF YEARS TO GO BACK 
$leagueretrive = 3; ///<--------THE LEAGUE ID TO RETRIEVE DATA FOR 

$date1 = date('y', strtotime("-$years years")); 
$date2 = date("y"); 
//CHECKING IF TABLE EXIST IF NOT CREATE NEW 
$table = $file_name; 
$query = "SELECT ID FROM " . $table; 
$resultat = mysqli_query($conn,$query); 


if(empty($resultat)) { 
    echo "<p>" . $table . " table does not exist</p>"; 
    $query = mysqli_query($conn,"CREATE TABLE IF NOT EXISTS $file_name (
     Id int NOT NULL PRIMARY KEY, 
     HomeGoalDetails varchar(800) NOT NULL, 
    )CHARACTER SET utf8 COLLATE utf8_general_ci"); 
} 
else { 
    echo "<p>" . $table . "table exists</p>"; 
} // else 

/////GETING THE DATA FROM SERVICE 

try { 
    $soccer = new XMLSoccer($api_key); 
    $soccer->setServiceUrl("http://www.xmlsoccer.com/FootballDataDemo.asmx"); 
    $results = $soccer->GetHistoricMatchesByLeagueAndSeason(array("league"=>$leagueretrive,"seasonDateString"=>"$date1$date2")); 
    print_r($results); 
} catch (XMLSoccerException $e) { 
    echo "XMLSoccerException: " . $e->getMessage(); 
} 
foreach ($results->Match as $team) { 
    $id = $team->Id; 
    $homeGoalDetails = $team->HomeGoalDetails; 

///INSERTING DATA INTO THE TABLE 
    $sql = "INSERT INTO $file_name (HomeGoalDetails) 
VALUES ('$homeGoalDetails') 
on duplicate key update HomeGoalDetails='$homeGoalDetails'"; 
} 
    if ($conn->query($sql) === TRUE) { 
     echo "New record created successfully"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 
$conn->close(); 
?> 

Die Antwort zu debuggen, was ich bekommen

Error: INSERT INTO testing2 (HomeGoalDetails) VALUES ('35': Stefan Johansen;4': penalty Leigh Griffiths;') on duplicate key update HomeGoalDetails='35': Stefan Johansen;4': penalty Leigh Griffiths;' You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ': Stefan Johansen;4': penalty Leigh Griffiths;') on duplicate key update HomeGo' at line 2 Process finished with exit code 0

+0

wo ist die 'IN testing2 INSERT .....' Abfrage in Ihrem Code? –

+0

Ihr Fehler ist mit dieser Zeile: $ sql = "INSERT IN $ Dateiname (HomeGoalDetails) VALUES ('$ homeGoalDetails') auf doppelte Schlüssel update HomeGoalDetails = '$ homeGoalDetails'"; Diese –

+0

ist wahrscheinlich etwas, das Aussagen vorbereitet würden behoben haben für Sie Sie sie verwendet hatte – apokryfos

Antwort

0

Sie unescaped zitiert haben in Ihrer Anfrage.

Versuchen:

<?php 
$file_name = basename(__FILE__,'.php'); 
include("conf.php"); 
include("XMLSoccer.php"); 

$years = 1; ///<-------NUMBER OF YEARS TO GO BACK 
$leagueretrive = 3; ///<--------THE LEAGUE ID TO RETRIEVE DATA FOR 

$date1 = date('y', strtotime("-$years years")); 
$date2 = date("y"); 
//CHECKING IF TABLE EXIST IF NOT CREATE NEW 
$table = $file_name; 
$query = "SELECT ID FROM " . $table; 
$resultat = mysqli_query($conn,$query); 


if(empty($resultat)) { 
    echo "<p>" . $table . " table does not exist</p>"; 
    $query = mysqli_query($conn,"CREATE TABLE IF NOT EXISTS $file_name (
     Id int NOT NULL PRIMARY KEY, 
     HomeGoalDetails varchar(800) NOT NULL, 
    )CHARACTER SET utf8 COLLATE utf8_general_ci"); 
} 
else { 
    echo "<p>" . $table . "table exists</p>"; 
} // else 

/////GETING THE DATA FROM SERVICE 

try { 
    $soccer = new XMLSoccer($api_key); 
    $soccer->setServiceUrl("http://www.xmlsoccer.com/FootballDataDemo.asmx"); 
    $results = $soccer->GetHistoricMatchesByLeagueAndSeason(array("league"=>$leagueretrive,"seasonDateString"=>"$date1$date2")); 
    print_r($results); 
} catch (XMLSoccerException $e) { 
    echo "XMLSoccerException: " . $e->getMessage(); 
} 
foreach ($results->Match as $team) { 
    $id = $team->Id; 
    $homeGoalDetails = $team->HomeGoalDetails; 

///INSERTING DATA INTO THE TABLE 
    $sql = "INSERT INTO $file_name (HomeGoalDetails) 
VALUES ('".mysqli_real_escape_string($conn,$homeGoalDetails)."') 
on duplicate key update HomeGoalDetails='".mysqli_real_escape_string($conn,$homeGoalDetails)."'"; 
} 
    if ($conn->query($sql) === TRUE) { 
     echo "New record created successfully"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 
$conn->close(); 
?> 
+0

gelöscht Thnx aber ID Doesent Arbeit – vivi

+0

PHP Warnung: mysqli_real_escape_string() erwartet genau 2 Parameter, 1 gegeben in C: \ 111.php in Zeile 44 PHP Warnung: mysqli_real_escape_string() erwartet genau 2 Parameter, 1 gegeben in C: \\ 111.php in Zeile 45 – vivi

+0

Fehler: INSERT INTO 111 (HomeGoalDetails) WERTE ('') auf doppelte Schlüssel aktualisieren HomeGoalDetails = ''
Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in der Bedienungsanleitung für die richtige Syntax zu verwenden in der Nähe von '111 (HomeGoalDetails) VALUES (' ') auf doppelte Schlüssel Update HomeGoalDetails =' '' at line 1-API-PHP-Master (1), um Ihre MariaDB Server-Version entspricht \ XMLSoccer-API-PHP-master \ 111.php on line 45 – vivi

Verwandte Themen