-1

请有人帮助我。我的代码有问题,错误说

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行“经度=”附近使用的正确语法。

这是我的代码:

<?php
include 'connect.php';

$id=isset($_SESSION['id']);

$sql = mysql_query("SELECT sms_text FROM sms_in where id = '$id'") or die(mysql_error());
$gps= mysql_fetch_array($sql);

preg_match('/lat:(\d+\.\d+) /', $gps, $matches);
unset($matches[0]);
$params = array(
    'f' => 'q',
    'q' => implode(',', $matches),
    'z' => 16,
);
$query1 = '//maps.google.com/maps?' . http_build_query($params);

$query = array();
$urlParts = parse_url($query1);
parse_str($urlParts['query'], $query);

//echo $query['q'];
//Get longitude

$sql4 = mysql_query("SELECT sms_text FROM sms_in where id = '$id'") or die(mysql_error());
$gps1= mysql_fetch_array($sql);

preg_match('/long:(\d+\.\d+) /', $gps1, $matches1);
unset($matches1[0]);
$params1 = array(
    'f' => 'q',
    'q' => implode(',', $matches1),
    'z' => 16,
);
$query2 = '//maps.google.com/maps?' . http_build_query($params1);

$query3 = array();
$urlParts1 = parse_url($query2);
parse_str($urlParts1['query'], $query3);

//echo $query3['q'];
//$sql5="select id 

---> //这是错误的原因

$sql2= mysql_query("Insert into tbl_location SET latitude=$query[q],longitude=$query3[q]")
        or die(mysql_error());

?>

谢谢!

4

4 回答 4

4

您的插入查询有问题,应该是......

INSERT INTO tbl_location (latitude,longitude) VALUES ('$query[q]','$query3[q]')


您必须遵循以下插入查询的语法。

插入语法

INSERT
    [INTO] tbl_name
    [PARTITION (partition_name,...)] 
    [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]
于 2013-10-23T11:39:06.617 回答
2

试试这条线:

$sql2= mysql_query("INSERT INTO tbl_location (latitude,longitude) VALUES ('" . $query['q'] . "','" . $query3['q'] ."')") or die(mysql_error());
于 2013-10-23T11:43:38.870 回答
2

您使用错误的插入查询。您正在使用它,就好像它是这一行的更新查询:

$sql2= mysql_query("Insert into tbl_location SET latitude=$query[q],longitude=$query3[q]")

像这样使用它:

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

资源:

http://www.w3schools.com/sql/sql_insert.asp

于 2013-10-23T11:40:45.543 回答
0

尝试使用``帮助引擎理解

$sql=mysql_query("INSERT INTO `tbl_location`"."(latitude,longitude)". "VALUES". "('$query[q]','$query3[q]')";
于 2013-10-23T14:41:15.783 回答