data.htmlで現在地の情報を取得し、それをphpでmysqlに引き渡しデータベースに登録させたいと思っています。
以下のコードで実行するとエラーが出ます。
>Fatal error: Uncaught Error: Call to undefined method PDOStatement::excute() in C:\xampp\htdocs\php\data\gps.php:9 Stack trace: #0 {main}
どこのコードをどのように変更したらよいか教えていただけないでしょうか。
javascript
1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="UTF-8"> 5 <title>MySQL</title> 6 <script type="text/javascript" src="jquery-3.3.1.min.js"></script> 7 <script type="text/javascript"> 8 9 function showMap(position) { 10 var coords = position.coords; 11 var x=coords.longitude; 12 var y=coords.latitude; 13 14 $.ajax({ 15 type:"GET", 16 url:"gps.php?num1="+y+"&num2="+x, 17 success:function(hoge) { 18 $('#insert').html(hoge); 19 }, 20 error: function(XMLHttpRequest,textStatus,errorThrown){ 21 $('#insert').html('エラーです'); 22 } 23 }); 24 } 25 26 function showdata(){ 27 $.ajax({ 28 type:"GET", 29 url:"show.php", 30 success:function(hoge) { 31 $('#mysql').html(hoge); 32 }, 33 error: function(XMLHttpRequest,textStatus,errorThrown){ 34 $('#mysql').html('エラーです'); 35 } 36 }); 37 } 38 39 function handleError(error) { 40 alert('現在地が取得できません'); 41 } 42 43 function getGeoLocation(){ 44 if (navigator.geolocation && typeof navigator.geolocation.getCurrentPosition == 'function') { 45 move.innerHTML="GeoLocation実行中"; 46 navigator.geolocation.getCurrentPosition(showMap,handleError); 47 } 48 else { 49 move.innerHTML="GeoLocation実行できません"; 50 handleError(); 51 } 52 } 53 54 </script> 55</head> 56 57<body> 58 <input type="button" value="現在地の取得" onclick="getGeoLocation()"> 59 <div id="move">Geolocation</div> 60 <div id="insert">現在地を表示します。</div> 61 62 <input type="button" value="表示" onclick="showdata()"> 63 <div id="mysql">データベースを表示します。</div> 64</body> 65 66</html> 67
php
1<table border="mysql"> 2<tr><th>ID</th><th>lat</th><th>lon</th></tr> //表の作成 3<?php 4 $pdo = new PDO("mysql:dbname=mydb;host=localhost;port=3306", "root","KHccY2hS"); //DNS構文によるデータベース接続 5 $st = $pdo->query("SELECT * FROM data"); //SQL文の実行 6 while ($row = $st->fetch()) { //最後の行まで表示 7 $id = htmlspecialchars($row['id']); 8 $lat = htmlspecialchars($row['lat']); 9 $lon = htmlspecialchars($row['lon']); 10 echo "<tr><td>$id</td><td>$lat</td><td>$lon</td></tr>"; 11 } 12?> 13</table>
php
1<?php 2 $lat = $_GET['num1']; //緯度 3 $lon = $_GET['num2']; //経度 4 5echo '現在地の緯度は'.$lat.'度、経度は'.$lon.'度です。'; 6 7 $pdo = new PDO("mysql:dbname=mydb;host=localhost;port=3306", "root","KHccY2hS"); //DNS構文によるデータベース接続 8 $st = $pdo->prepare("INSERT INTO data VALUES(?,?)"); //SQL文の準備 9 $st->excute(array($lat,$lon)); //SQL文の実行 10 } 11?> 12</table>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。