MySQL查询中的PHP变量从列表中爆炸

时间:2013-10-24 22:10:00

标签: php mysql

我有一段我无法工作的代码。 $ num变量需要传递给mysql查询,因此它使用$ num。

更新最新记录

当我设置$ num_d ='1234'时代码有效;

如何将$ num变量传递给查询语句

 $test_message ="$full, $t_phone_number, $f_phone_number";

//explode sms message into variables
list($name, $status, $timecode, $latitude, $longitude, $num, $city, $state, $t_phoneb, $t_phone, $f_phone) = explode("," , $test_message);

print_r(explode(',', "$test_message"));

$num_ext = explode(",", $test_message);
$num_d = (string)$num_ext[5];

// Update database table
 mysql_query("UPDATE msg SET timecode_off= '$timecode' WHERE (num= '$num_d') ORDER BY id DESC LIMIT 1");

5 个答案:

答案 0 :(得分:0)

如果 $ test_message格式正确,您应该可以直接使用$num

mysql_query("UPDATE msg SET timecode_off= '$timecode' WHERE (num= '$num') LIMIT 1");

答案 1 :(得分:0)

$test_message ="$full, $t_phone_number, $f_phone_number";
$num_ext = explode(",", $test_message);

结果是:

$num_ext[0] = $full;
$num_ext[1] = $t_phone_number;
$num_ext[2] = $f_phone_number; and so on

$num_d = $num_ext[5];
$sql = "UPDATE msg SET timecode_off= '$timecode' WHERE num='$num_d' ORDER BY id DESC LIMIT 1"
$query = mysql_query($sql, $connection);

答案 2 :(得分:0)

$ num_ext中的索引“5”不存在。如果您确定num_d始终位于爆炸数组的末尾,则可以使用

$num_d = (string) end($num_ext);

答案 3 :(得分:0)

你的代码看起来很不错,也有三行做同样的

/* Here, what is the $full format? I looks like a string with coma separated */
$test_message ="{$full}, {$t_phone_number}, {$f_phone_number}";

/* Mapping the array without spaces */
$array = array_filter(array_map('trim', explode(',', $test_message)));

/* Update database table */
 mysql_query("UPDATE msg SET timecode_off= '{$array[2]}' WHERE (num= '{$array[5]}');") or die (mysql_error());

我想,这段代码必须工作,但是我不知道 $ full 结构,另一个想要注意的是ORDER BY限制,即SELECT子句,UPDATE子句没有,可能你需要一个WHERE

答案 4 :(得分:0)

首先删除ORDER BY子句。这是为select语句。接下来,在将所有字符串存储到数据库之前回显所有字符串,以了解应存储的内容和实际存储的内容。如果输出没有给你一个错误的线索,那么在这里发布输出。