如何随机地在mysql表中插入数据

时间:2016-05-02 08:24:18

标签: php mysql

我创建了一个脚本,从其他网站获取数据并将其插入或添加到mysql表中。当我用来从网站获取数据时,它运行正常但是当我在mysql中插入它时我无法做到这一点。它显示我的错误,即

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

您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在第2行的“贸易公司免费下载”附近使用正确的语法错误:INSERT INTO body(body)VALUES(

这是我的代码,看看我做错了什么。

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();

我创建了一个名为body的表,所有事情都进展顺利,当我插入像

这样的数据时
    $sql = "INSERT INTO MyGuests (title, body)
VALUES ('Aditya', 'pandey')";

告诉我我错在哪里并纠正我。你的回答非常值得,请帮助我。

2 个答案:

答案 0 :(得分:2)

当您将值插入字符串字段时,正确的MySql语法是使用引用'

来包装它们

例如:

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

也适用于$q和所有字符串。我建议你用mysqli_real_escape_string函数来逃避它们,以避免sql注入和语法错误。

答案 1 :(得分:0)

试试这些代码;

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

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

希望这有帮助。