Рассмотрим эту базу данных:MySQLi вставить запрос успешно, но нет строки в таблице?
var1 int(10) Auto Increment
var2 varchar(255)
var3 int(10)
var4 tinyint(1) unsigned
var5 int(10)
var6 tinyint(1) unsigned [0]
var7 tinyint(1) unsigned [0]
У меня есть страница на одном домене, который содержит некоторые JQuery, который делает JSONP GET на .php скрипт на другом домене:
Client JQuery:
$.ajax({
url: "https://1.2.3.4/xxx/xxx.php",
timeout: 5000,
data: { "var1": "xxx",
"var2": "xxx",
"var3": "xxx",
"var4": "xxx",
"var5": "xxx",
},
dataType: "jsonp",
success: function(data) {
alert(data);
},
});
PHP
Сервер:
<?php
header('content-type: application/json; charset=utf-8');
header("access-control-allow-origin: *");
if($_SERVER['HTTP_REFERER'] != "xxx" || !isset($_GET['callback']))
{
sendResponse(400, 'Invalid request');
exit();
}
// Check for required parameters
if ( isset($_GET["var1"]) &&
isset($_GET["var2"]) &&
isset($_GET["var3"]) &&
isset($_GET["var4"]) &&
isset($_GET["var5"]))
{
if($_GET["var1"] == "xxx")
{
$var2 = $_GET["var2"];
$var3 = intval($_GET["var3"]);
$var4 = intval($_GET["var4"]);
$var5 = intval($_GET["var5"]);
$db = new mysqli('localhost', 'root', 'xxx', 'xxx');
$db->autocommit(FALSE);
$result = $db->query("INSERT INTO xxx (`xxx`, `xxx`, `xxx`, `xxx`) VALUES ('$var2', $var3, $var4, $var5)");
$requestID = $db->insert_id;
$data = array("requestID" => $requestID, "errorMessage" => $db->error);
echo $_GET['callback'] . '('.json_encode($data).')';
}
}
?>
Это Лоо ks, как работает INSERT. Я получаю верный «insert_id» в JSON. Я также попытался вернуть число затронутых строк, которое показывает «1». Но почему-то, когда я смотрю на эту таблицу, в таблице нет строк?
Я могу вручную вставить в эту таблицу, используя тот же оператор INSERT, вошедший в систему как один и тот же пользователь («root» - просто чтобы сузить его!). Я не получаю никаких ошибок PHP, а $db->error
ничего не возвращает. Если после этого я посмотрю на таблицу в MySQL, поле auto increment ID увеличится на единицу, но данных не будет.
Любые идеи ?!
'mysqli_select_db()', чтобы убедиться, что вы пишете для правильного схемы? например у вас нет одинаковой таблицы, установленной в базе данных 'test' - если' test' является значением по умолчанию ... может быть длинным. – CD001