我有一段我无法工作的代码。 $ 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");
答案 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语句。接下来,在将所有字符串存储到数据库之前回显所有字符串,以了解应存储的内容和实际存储的内容。如果输出没有给你一个错误的线索,那么在这里发布输出。