帮助sql和字符串

时间:2011-05-05 13:26:00

标签: php mysql sql

这是我的mysql查询:

    mysql_query("INSERT INTO Coordenadas (ID, LAT, LNG, DESCRICAO) VALUES ($id, $coords[1], $coords[0], $string_cortada)");

当我回复$ id,$ coords [0],$ coords [1]和$ string_cortada时:

echo '</br>$id:'.$id.'</br>coordenadas:'.$coords[1].','.$coords[0].'</br>string: ' . $string_cortada;):

这就是我得到的:

$id: 1
coordenadas:-22.9028102,-43.2498512
string: marechal rondon 

$id: 2
coordenadas:-22.9824202,-43.3605722
string: rua joana angelica 

$id: 3
coordenadas:-22.8866218,-43.3699090
string: passarela barra

工作数据,但是当我这样做时:

mysql> select * from coordenadas;

这是输出:

+----+------+-------------+-------------+-----------+------+
| ID | TIPO | LAT         | LNG         | DESCRICAO | DATA |
+----+------+-------------+-------------+-----------+------+
|  2 | NULL | -22.8544942 | -43.5350719 | 1         | NULL |
+----+------+-------------+-------------+-----------+------+
DESCRICAO没有工作,TIPO没有工作,只有LAT和LNG,我找不到原因!!

这是coordenadas表格描述:

mysql> desc coordenadas;
+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| ID        | int(11)      | NO   | PRI | NULL    | auto_increment |
| TIPO      | varchar(15)  | YES  |     | NULL    |                |
| LAT       | double       | NO   |     | NULL    |                |
| LNG       | double       | NO   |     | NULL    |                |
| DESCRICAO | varchar(150) | YES  |     | NULL    |                |
| DATA      | date         | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+

感谢

2 个答案:

答案 0 :(得分:4)

SQL查询中有错误:

 mysql_query("INSERT INTO Coordenadas (ID, LAT, LNG, DESCRICAO) VALUES ($id, $coords[1], $coords[0], $string_cortada)");

$ string_cortada需要用语音标记封装,因为它是一个字符串。将其更改为:

 mysql_query("INSERT INTO Coordenadas (ID, LAT, LNG, DESCRICAO) VALUES ($id, $coords[1], $coords[0], '$string_cortada')");

对于将来的调试我会在PHP中编写SQL查询,如下所示:

$sql = "INSERT INTO Coordenadas (ID, LAT, LNG, DESCRICAO) VALUES ($id, $coords[1],        $coords[0], '$string_cortada')"

$result = mysql_query($query) 

if (!$result) {
 $message  = 'Invalid query: ' . mysql_error() . "\n";
 $message .= 'Whole query: ' . $query;
 die($message);
}

通过这种方式,您可以查看发送到数据库的查询的外观,并在发生错误时查看错误原因。这可以帮助您快速识别任何未来的格式错误

要删除周围(开头和结尾)字符串的空白区域,可以使用trim()方法:

$text = trim($text);

要从字符串中删除所有空格,您可以使用preg_replace,如下所示:

$text = preg_replace('/ /', '', $text);

答案 1 :(得分:1)

您没有在输入中指定TIPO - 查询... 对于DESCRICAO尝试使用单引号,如

VALUES ($id, $coords[1], $coords[0], '$string_cortada')