为什么不保存来自mysql的数据[关闭]

Closed. This question needs debugging details. It is not currently accepting answers.
                </div>
            </div>
        </div>
                <hr class="my12 outline-none baw0 bb bc-powder-2">
            <div class="grid fw-nowrap fc-black-600">
                    <div class="grid--cell mr8">
                        <svg aria-hidden="true" class="svg-icon iconLightbulb" width="18" height="18" viewbox="0 0 18 18"><path d="M9.5.5a.5.5 0 0 0-1 0v.25a.5.5 0 0 0 1 0V.5zm5.6 2.1a.5.5 0 0 0-.7-.7l-.25.25a.5.5 0 0 0 .7.7l.25-.25zM1 7.5c0-.28.22-.5.5-.5H2a.5.5 0 0 1 0 1h-.5a.5.5 0 0 1-.5-.5zm14.5 0c0-.28.22-.5.5-.5h.5a.5.5 0 0 1 0 1H16a.5.5 0 0 1-.5-.5zM2.9 1.9c.2-.2.5-.2.7 0l.25.25a.5.5 0 1 1-.7.7L2.9 2.6a.5.5 0 0 1 0-.7z" fill-opacity=".4"></path><path opacity=".4" d="M7 16h4v1a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-1z" fill="#3F3F3F"></path><path d="M15 8a6 6 0 0 1-3.5 5.46V14a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1v-.54A6 6 0 1 1 15 8zm-4.15-3.85a.5.5 0 0 0-.7.7l2 2a.5.5 0 0 0 .7-.7l-2-2z" fill="#FFC166"></path></svg>
                    </div>
                <div class="grid--cell lh-md">
                    <p class="mb0">
                        <b>Want to improve this question?</b> <a href="/posts/55141985/edit">Update the question</a> so it's <a href="/help/on-topic">on-topic</a> for Stack Overflow.
                    </p>
                    <p class="mb0 mt6">Closed <span title="2019-09-11 11:01:49Z" class="relativetime">8 months ago</span>.</p>
                </div>
            </div>
    </aside>

hey i want to crawl data from the site with this code (js)

var i = 0
var oldValue = -1

var interval = setInterval(get, 3000);

function get(){
var x= $($('.table-body')[1]).find('.h-col-1')
if(i!=5){
if(oldValue != x){
    oldValue = $(x[1]).text()
    console.log($(x[1]).text())
    ++i
    sendPost($(x[1]).text())
  }
}else clearInterval(interval)
}

function sendPost(par) {
    var te= $.ajax({
        type: "POST",
        dataType: 'jsonp',
        url: 'http://localhost/sa.php',
        data: {json:JSON.stringify({
            num : par
        })  },
    }).done(function( data ) {
        console.log("done");
    })
    .fail( function(xhr, textStatus, errorThrown) {
        console.log(xhr.responseText);textStatus
    });
    console.log(te)

send data from localhost and save on my sql and this php code

sa.php

<?php
header('Access-Control-Allow-Origin: *');
$sitename = "http://localhost/";
$hostname = "localhost";
$username = "root";
$password = "";
$database = "db";
$connect = mysqli_connect($hostname, $username, $password, $database);
$insert = "INSERT INTO main(number, time, date) VALUES ('%s','%s','%s','')";
$data = json_decode(file_get_contents("php://input"), true);
$result = mysqli_query($connect,sprintf($insert,$data['num'] ,date("H:i:s"),date("Y-m-d")));


?>

and then

pic success

success send from js request from local server why dosen't save on the my sql ??

</div>

You should check the value of file_get_contents("php://input").

As you are sending a key-value pair:

    data: {json:JSON.stringify({
        num : par
    })  },

you should get the data using $_POST['json'].

So:

$data = json_decode($_POST['json'], true);

The alternative, change the javascript instead of the php, would be something like:

data: JSON.stringify({
        num : par
    }),

But to be honest, I don't know how jQuery will handle that data so it might need some tweaking.

Apart from that, you have an sql injection problem; you should use prepared statements with bound parameters instead.

I think the answer lies into your insert query:

$insert = "INSERT INTO main(number, time, date) VALUES ('%s','%s','%s','')";

Please count the number of columns defined and the number of values you're trying to insert. These two should, obviously, match.

If you wish to figure out why a MySQL query failed, just print or log the error: http://php.net/manual/en/mysqli.error.php