前提・実現したいこと
データベースにデータをINSERTしたい、が、parsererror になる。
index.php の46,47行は以下に当たる。
console.log(xhr);
console.log(textstatus);
発生している問題・エラーメッセージ
mysqliでMAMP、phpMyAdminデータベースにはコネクトはされる、
INSERT文が実行できない。
どうか、お助け下さいませ。
以下index.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Build an API</title> <style> .btn { border: 1px solid black; padding: 10px; display: inline-block; } </style> </head> <body> ID : <input type="number" name="xid" id="xid" value="1"> <br> Name : <input type="text" name="name" id="name" value="tester"> <br> Company : <input type="text" name="company" id="company" value="company"> <br> Cost : <input type="number" name="cost" id="cost" value="10"> <br> <div class='btn' id="btn1">Send Data</div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function () { $('#btn1').on('click', function () { var vars = { xid: $('#xid').val() , name: $('#name').val() , company: $('#company').val() , cost: $('#cost').val() } $.ajax({ url: "api.php" , data: vars , type: "POST" , dataType: 'json' }).done(function (d) { console.log(d); }).fail(function (xhr, textstatus) { console.log(xhr); console.log(textstatus); }) }) }) </script> </body> </html>
以下api.php
<?php $con = new mysqli("localhost","[ユーザー]","[パスワ]","[データベース名]"); $arr = []; if($con->ping()){ $arr['connected']= true; }else{ $arr['connected']= false;} if ($_SERVER['REQUEST_METHOD'] === 'POST') { $arr['xid'] = $_POST['xid']; $arr['name'] = $_POST['name']; $arr['company'] = $_POST['company']; $arr['cost'] = $_POST['cost']; }else{ $arr['xid'] = '100'; $arr['name'] = 'noname'; $arr['company'] = 'company'; $arr['cost'] = '100'; } $sql = $con->prepare("INSERT INTO `api`(`xid`,`cost`,`name`,`company`)VALUES(?,?,?,?)"); $rs = $sql->bind_param('iiss',$arr['xid'], $arr['cost'], $arr['name'], $arr['company']); if($rs){ $sql->execute(); //$arr['id'] = $con->insert_id; echo "hello"; } echo json_encode($arr); ?>
回答2件
あなたの回答
tips
プレビュー