0

私は crateio をセットアップしましたが、PDO クラスを使用して正常に動作しています。

私は、バインドを使用してデータベースにジオポイントのセットを取得しようとしています。

foreach を試しましたが、うまくいかないようです。これを試してみましたが、これもうまくいきません。

geopoint 列は geo_point_array に設定されます。

$route="[[30.33333, -6.13336],[30.33333, -6.13336]]"; 

$db = new Database; 

$db->Query("insert into geopoints (id, longlat, name) values ('33',?,'pat')"); 

$db->bind(1, $route); 
$db->execute();

この一連の座標をデータベースに追加するにはどうすればよいですか?

ありがとう

4

2 に答える 2

2

GeoPointは、Crate の PDO ドライバーではまだネイティブ タイプとしてサポートされていませんが、double ARRAYを使用できます。

クレートのドキュメントから:

geo_point を含む列は、次の形式の double 配列を使用して表され、挿入されます: [lon_value, lat_value]

また、他の値のパラメーター置換を行うことを強くお勧めします。

use Crate\PDO\PDO;

$route = [[30.33333, -6.13336], [30.33333, -6.13336]];

$db = new PDO('crate:...'); 
$stmt = $db->query("insert into geopoints (id, longlat, name) values (?, ?, ?)"); 

$stmt->bind(1, 33, PDO::PARAM_INT); 
$stmt->bind(2, $route, PDO::PARAM_ARRAY); 
$stmt->bind(3, 'pat', PDO::PARAM_STR); 

$stmt->execute();
于 2014-12-17T08:18:53.107 に答える
0

PDO::query戻り値PDOStatement:

$route="[[30.33333, -6.13336],[30.33333, -6.13336]]"; 

//If Dateabase is a sublcass of PDO
//$db = new Database; 
$db = new PDO(...); 

$stmt = $db->query("insert into geopoints (id, longlat, name) values ('33',?,'pat')"); 

$stmt->bind(1, $route, PDO::PARAM_STR); 
$stmt->execute();
于 2014-12-16T11:52:04.367 に答える