表題の通り、GETでデータを取得するさいに以下のようなエラーが出て困っています。
<br /> <b>Fatal error</b>: Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'yamada' in 'where clause' in /var/www/html/.vscode/DB_write_test/get_latlng_test.php:52 Stack trace: #0 /var/www/html/.vscode/DB_write_test/get_latlng_test.php(52): PDOStatement->execute() #1 {main} thrown in <b>/var/www/html/.vscode/DB_write_test/get_latlng_test.php</b> on line <b>52</b><br />
main_test.php
php
1 <script> 2・ 3・ 4・ 5 $(function() { 6 7・ 8・ 9・ 10 $('#btn2').click(function(){ 11 function get_latlng(){ 12 $.ajax({ 13 url: "get_latlng_test.php", 14 type: "GET", 15 datatype: "json", 16 data: { 17 get_name : 'yamada' 18 }, 19 }).done(function(data){ 20 //$('#result').html(data.lng + ' ' + data.lat); 21 $('#result').html(data.latlng); 22 //console.log("名前" + data[0].user_name + "の経度は" + data[0].lng + "で、緯度は" + data[0].lat+"です"); 23 console.log("DB通信完了_GET"); 24 console.log(data); 25 }).fail(function(data){ 26 console.log("DB通信失敗_GET"); 27 console.log(data); 28 }); 29 }; 30 get_latlng(); 31 }); 32 }); 33 </script>
get_latlng_test.php
php
1<?php 2ini_set('display_errors',1); 3session_save_path('/home/*****/session'); 4session_start(); 5require 'database_test.php'; 6$get_name = (string)$_GET['get_name']; 7$pdo = connect(); 8$stmt_get = $pdo->prepare("SELECT latlng FROM User3 where 'user_name' = $get_name"); 9$stmt_get->execute(); 10$mapping_list = array(); 11while($row = $stmt_get->fetch(PDO::FETCH_ASSOC)){ 12 $mapping_list[] = array( 13 'latlng' => $row['latlng'] 14 #'lat' => $row['ST_Y(latlng)'] 15 ); 16} 17header('Content-type: application/json'); 18echo json_encode($mapping_list,JSON_UNESCAPED_UNICODE); 19?> 20
table内容(テーブル名:User3)
mysql
1mysql> select * from User3; 2+----+------------+--------------------------------------------------------------+---------------------------+ 3| id | user_name | password | latlng | 4+----+------------+--------------------------------------------------------------+---------------------------+ 5| 1 | ashial.Ltd | pass | `? fxa@伀{摶攸@ | 6| 2 | minase | $2y$10$Yui/2sBgOTAKO9O3Qr/n2e2U69z9mopEu73iNAx0RYSuolEPIp9Om | : 7 ?糢a@_O*俚卅@ | 8| 3 | uchida | $2y$10$.lb2b7InyUYQ2yzfCr1AD.8aKb9y5rN2dRQQFb2jEEjSiXC4vhL8y | (@ 9@ | 9| 4 | yamada | $2y$10$easFTwRXddoVepx4ojct8u.7Fdzljv47XfDBWXZAFA1Mj1/VUvbVq | ]u?囓a@?w⊥卅@ | 10| 5 | toriyama | $2y$10$iYMCbJtlGFTAy2/X73WVguq3IKH4ibHBAnGSI2VpaAshbQxZAXcLu | `? fxa@伀{摶攸@ | 11+----+------------+--------------------------------------------------------------+---------------------------+ 125 rows in set (0.00 sec) 13latlngカラムはgeometry型のため、文字化けがする仕様のようです。
尚、User3は以下のコマンドで作成しました
mysql
1CREATE TABLE `User3` ( 2 `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'AI', 3 `user_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '氏名', 4 `password` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'パスワード', 5 `latlng` geometry NOT NULL, 6 PRIMARY KEY (`id`), 7 UNIQUE KEY `user_name` (`user_name`), 8 SPATIAL KEY `spot_latlng_index` (`latlng`) 9) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
プログラムの説明
main_test.phpのボタンbtn2をクリックすると、変数get_nameでyamadaが送られます。
get_latlng.phpで受け取り、$get_nameに格納、この$get_nameをwhere句に挿入して、yamadaさんのlatlngカラムのデータを取得して、$mapping_list[]にlatlngとして格納し、$mapping_listをmain_test.phpに返します。main_test.phpでは「$('#result').html(data.latlng);」のように、ブラウザ画面に表示するようにしています。
しかし以下のようにエラーが出ております。
エラーメッセージに記載のget_latlng.phpの53行目は
$stmt_get->execute();
の箇所です。
切り分け等含め何かしらの解決方法があればご教示の程よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/29 06:33
2020/01/29 06:36 編集
2020/01/29 06:36
2020/01/29 06:37
2020/01/29 06:56
2020/01/29 06:59
2020/01/29 07:38 編集
2020/01/29 08:18