2012-12-05 68 views
3

我试图插入一些php变量到Mysql数据库中,但没有运气。连接工作没有问题,变量都有值,所以我必须是我的插入语句。我一直在浏览网页,并尝试了一大堆没有运气的替代方法。下面是代码:php变量插入数据库

<?php 

$connection = mysql_connect('localhost', 'username', 'password') or die (mysql_error()); 
mysql_select_db('table', $connection) or die (mysql_error()); 

$message = $_POST["Body"]; 

$data = explode("*", $message); 

$id = ''; 
$phone = $_POST["From"]; 
$location = $data[0]; 
$speed = $data[1]; 
$direction = $data[2]; 
$comment = $data[3]; 


$query = mysql_query("INSERT INTO user_data (id, phone, location, speed, direction, comment) VALUES ('$id', '$phone', '$location', '$speed', '$direction', '$comment')"); 

我已经测试,以确保变量包含的数据,我也测试了所有的连接,一切正常,除了这个完美的!任何帮助将是伟大的!

+3

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护,[弃用过程](http://j.mp/Rj2iVR)已经开始。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 –

+2

请请清理您的输入!切勿直接从用户处取得任何东西,并尝试将其放在您的查询附近的任何位置。 – Cyclone

+1

你的代码容易受到** sql伤害** .....坏人会......符文你的心灵平安 –

回答

3

尝试在{}封闭的变量名,即

'{$speed}' 
+0

这似乎工作得很好!非常感谢!我也正在执行上述修复 –

1

如果ID是一个自动编号字段,你不应该在插入路过“” - 刚落场,让你的数据库照顾它。如果它不是自动编号,则可能不是有效的键值。

此外,如果您的任何字段是数字,而不是文本,他们不应该有他们周围的单引号。我的猜测是,速度应该是一个数字,不应该在你的查询引号。

但请注意,请看看你的问题的评论 - 这是错误的代码和评论解释了为什么。

+0

所有的字段都是varchar的,这是为了我所做的。我是PHP新手,所以我一直在关注显然已过时的在线教程!我会尝试一些新的信息 –