2011-05-23 58 views
1

这是我的插入查询。无法在PHP中使用MySql插入数据

$insertQuery = "INSERT INTO timeline (id_str, from_user, text, timestamp, location) VALUES ($resultsAry[$x]['id_str'], $resultsAry[$x]['from_user'], $resultsAry[$x]['text'], $datetime, $locationAry[$i]['place'])"; 

传递给查询的值似乎是正确的(通过回显所有值进行检查)。但我得到了以下错误。

Insert failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '['id_str'], Array['from_user'], Array['text'], 2011-05-23 18:58:27, Array['place' at line 1

请帮忙?

+0

我认为您需要引用您的值。 – martynthewolf 2011-05-23 11:07:13

回答

1

试试这个:

$insertQuery = "INSERT INTO timeline (id_str, from_user, text, timestamp, location) VALUES ('".$resultsAry[$x]['id_str']."', '".$resultsAry[$x]['from_user']."', '".$resultsAry[$x]['text']."', '".$datetime."', '".$locationAry[$i]['place']."')"; 
+0

谢谢。有用。 =) – 2011-05-23 11:31:53

2

为了让PHP正确解析您的数组键,你可以用{}封装它们是这样的:

$insertQuery = "INSERT INTO timeline (id_str, from_user, text, timestamp, location) VALUES ({$resultsAry[$x]['id_str']}, {$resultsAry[$x]['from_user']}, {$resultsAry[$x]['text']}, $datetime, {$locationAry[$i]['place']})"; 
2

帮自己一个忙,至少是逃脱值来保护数据。将值连接到查询中:

$insertQuery = " 
INSERT INTO timeline (
    id_str, 
    from_user, 
    text, 
    timestamp, 
    location 
) 
VALUES (
    '" . mysql_real_escape_string($resultsAry[$x]['id_str']) . "', 
    '" . mysql_real_escape_string($resultsAry[$x]['from_user'] . "', 
    '" . mysql_real_escape_string($resultsAry[$x]['text'] . "', 
    '" . mysql_real_escape_string($dateTime) . "', 
    '" . mysql_real_escape_string($locationAry[$i]['place']) . "' 
);"; 

echo $insertQuery; 
+0

我认为你错过了a)最后... – BlueEel 2011-05-23 11:13:21

+0

我也这么认为,谢谢你的头:) – 2011-05-23 11:14:45