最近在WRTNode上开发一个小的Http服务器程序,下面对使用做一下小结,有错误的地方还请指出。
一、反斜杠情况的处理
$filename = addslashes($filename);
二、PHP处理Mysql事务
// 执行事务, 参数是由多条sql语句组成的数组
function excute_transaction($sql_array){
$conn = m_connect_mysql();
if (!$conn) {
return false;
}
try {
mysql_query("BEGIN");
$count = count($sql_array);
for ($i = 0; $i < $count; ++$i){
$result = mysql_query($sql_array[$i]);
if (!$result){
echo $sql_array[$i] . " wrong";
if (DEBUG){
echo (mysql_error($sql_array[$i]));
}
mysql_query("ROLLBACK");
m_close_connect($conn);
return false;
}
}
mysql_query("COMMIT");
m_close_connect($conn);
return true;
} catch (Exception $exc) {
mysql_query("ROLLBACK");
if (DEBUG){
echo $exc->getTraceAsString();
}
return false;
}
}
三、处理JSON
$jsonString = $_POST["filename"];
$jsonArray = json_decode($jsonString, TRUE); // json解码成数组
$keyvalue = $jsonArray["filename"];
json_decode的第二个参数设置为TRUE,则该函数,就能将Json格式的字符串转换为数组的形式,然后我们可以像下面这段代码一样,遍历数组,处理我们需要的数据。for ($i = 1; $i < $length; ++$i){
<span style="white-space:pre"> </span>$where = $keyvalue[$i]["where"];
$name = $keyvalue[$i]["name"];
}
function view_all_files(){
$sql = "select a.ID, a.FILE_NAME, a.CHUNKS, b.IS_UPDATE, count(a.FILE_NAME) as count from files as a, fragmentations as b where a.ID = b.BELONGS_ID and b.IS_UPDATE = 1 group by a.FILE_NAME;";
$result = excute_sql($sql);
if (!$result){
return false;
}
$files_array = array();
while ($row = mysql_fetch_array($result)){
$chunks = $row["CHUNKS"];
$file_name = $row["FILE_NAME"];
$count = $row["count"];
if ($chunks == $count){
array_push($files_array, $file_name);
}
}
return json_encode($files_array);
}