2016-05-02 6 views
2

Ich habe ein Skript erstellt, die Daten von anderen Website und fügen Sie es in MySQL-Tabelle. Wenn ich Daten von der Website bekomme, läuft es korrekt, aber wenn ich es in mysql einfüge, kann ich das nicht tun. es zeigt mir Fehler, d.h.Wie Sie Daten in MySQL Tabelle zufällig einfügen

Error: INSERT INTO body (title) VALUES (Offworld Trading Company Free Download) 

Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Server-Version für die richtige Syntax in der Nähe von 'Handelsunternehmen Free Download' entspricht Zeile 2Error: INSERT INTO Körper (Körper) WERTE (

) Hier ist mein Code sehen, was ich falsch mache .

require_once('simple_html_dom.php'); 
$html = new simple_html_dom(); 
$xml = simplexml_load_file("sitemap.xml"); 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "kuta"; 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
foreach ($xml->url as $s) { 
    $s = $s->loc; 
    $html = file_get_html($s); 
    $element = $html->find('div[class=post-content clear-block]'); 
    // Find all links 
    $vez = $html->find('div[class=post-date]'); 
    $p = '|<a [^>]*href="http://<Some Url>[^"]*"[^>]*>.*</a>|iU'; 
    $h = $html->find('h1[class=title]'); 
    if (empty($vez)) { 
     foreach ($h as $ha) { 

      $q = strip_tags($ha->plaintext); 
      $sql = "INSERT INTO body (title) VALUES ($q)"; 
      if ($conn->query($sql) === TRUE) { 
       echo "New record created successfully"; 
      } else { 
       echo "Error: " . $sql . "<br>" . $conn->error; 
      } 
     } 
     foreach ($element as $a) { 
      if ($a === end($element)) { 
       $m = preg_replace($p, '', $a); 
      } 
      $m = strip_tags($m, '<p><a><img><br /><br><div>'); 
      $sql = "INSERT INTO body (body) VALUES ($m)"; 
      if ($conn->query($sql) === TRUE) { 
       echo "New record created successfully"; 
      } else { 
       echo "Error: " . $sql . "<br>" . $conn->error; 
      } 
     } 
    } 
} 
$conn->close(); 

I Tabelle mit dem Namen Körper geschaffen haben, all die Dinge gut laufen, wenn ich Daten wie

$sql = "INSERT INTO MyGuests (title, body) 
VALUES ('Aditya', 'pandey')"; 

Zeigen Sie mir ein, wo ich falsch bin und korrigieren Sie mich. Ihre Antwort sind sehr spürbar, Bitte helfen Sie mir.

+0

Können Sie uns den Code um diese Variable zeigen? – Loko

+0

Was ist Linie 26? –

+0

ersten Mal, wenn ich $ sql Variable –

Antwort

2

Wenn Sie Werte in String-Felder, die richtige MySql Syntax ist wickeln sie um mit einem Zitat '

Zum Beispiel das Einfügen:

$sql = "INSERT INTO body (body) VALUES ('$m')"; 

Tun Sie es auch für $q und alle Saiten. Ich schlage vor, Sie mit mysqli_real_escape_string Funktion zu entkommen, um SQL-Injektion und Syntaxfehler zu vermeiden.

+0

Ich füge Daten wie Titel in nth ID als Körper in (n + 1) th Identifikation ein. Ich möchte das in derselben ID machen. –

+0

Wenn Sie dies tun möchten, lernen Sie zuerst, wie Sie Daten korrekt in eine Tabelle einfügen müssen. Und ich habe wirklich keine Ahnung, was dein Titel bedeutet ... Dein gesamter Beitrag handelt von deinem Syntaxfehler, also, repariere zuerst das Thema, und bitte stelle die Frage in einer anderen Frage mit den zugehörigen Codestücken. – vaso123

0

Versuchen Sie diese Codes;

$sql = "INSERT INTO body (`title`) VALUES ('$q')"; 

und

$sql = "INSERT INTO body (`body`) VALUES ('$m')"; 

Hoffnung, das hilft.

+0

Ich füge Daten wie Titel in nth ID als Körper in (n + 1) th Identifikation ein. Ich möchte das in derselben ID machen –

Verwandte Themen