每日学习笔记(2)

1,使用python提交post请求时,如果参数中包含中文,则会提交失败,因此需要将参数进行utf-8编码,示例如下:

  
  
  
  
  1. self.name = name.encode("utf-8") 

 2,一直在linux下使用python2.4,习惯了print 'hello'这样的写法,今天换到windows下,并且安装了python3.1后发现print是一个函数,因此要写成print('hello'),悲剧,但目前项目中都还是用的老旧的语法,还是得继续2.4才好。

3,python中序列化及反序列化一个对象,

  
  
  
  
  1. import pickle  
  2.  
  3. def serializeObject(obj, filePath):  
  4.     output = open(filePath, 'wb') #二进制写模式打开  
  5.     pickle.dump(obj, output) #序列化  
  6.     output.close()  
  7.       
  8. def deSerializeObject(filePath):  
  9.     try:  
  10.         in = open(filePath, 'rb') #二进制读模式打开  
  11.         obj = pickle.load(in) #反序列化  
  12.         return obj  
  13.     except EOFError:  
  14.         return None  
  15.     except IOError:  
  16.         return None 

4,使用trigger_error而不是die,这样对用户来说更加友好

  
  
  
  
  1. mysql_connect($host,$user,$password) or trigger_error( "Could not connect: " . mysql_error ()); 

5,mysql_query对于select等返回resultsetsql语句来说,运行成功返回一个resource,发生错误则返回FALSE,而对于insert,update,

delete,dropsql语句,运行成功返回TRUE,发生错误则返回FALSE;

  
  
  
  
  1. <?php  
  2. // This could be supplied by a user, for example  
  3. $firstname = 'fred';  
  4. $lastname  = 'fox';  
  5.  
  6. // Formulate Query  
  7. // This is the best way to perform a SQL query  
  8. // For more examples, see mysql_real_escape_string()  
  9. $query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",  
  10.     mysql_real_escape_string($firstname),  
  11.     mysql_real_escape_string($lastname));  
  12.  
  13. // Perform Query  
  14. $result = mysql_query($query);  
  15.  
  16. // Check result  
  17. // This shows the actual query sent to MySQL, and the error. Useful for debugging.  
  18. if (!$result) {  
  19.     $message  = 'Invalid query: ' . mysql_error() . "\n";  
  20.     $message .= 'Whole query: ' . $query;  
  21.     die($message);  
  22. }  
  23.  
  24. // Use result  
  25. // Attempting to print $result won't allow access to information in the resource  
  26. // One of the mysql result functions must be used  
  27. // See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.  
  28. while ($row = mysql_fetch_assoc($result)) {  
  29.     echo $row['firstname'];  
  30.     echo $row['lastname'];  
  31.     echo $row['address'];  
  32.     echo $row['age'];  
  33. }  
  34.  
  35. // Free the resources associated with the result set  
  36. // This is done automatically at the end of the script  
  37. mysql_free_result($result);  
  38. ?>  

6,mysql_fetch_array其实是取结果集的一行到一个数组中,它可以是一个关联数组(MYSQL_ASSOC)或数字数组(MYSQL_NUM),默认情况下两者都可以使用

  
  
  
  
  1. <?php  
  2. mysql_connect("localhost""mysql_user""mysql_password"or 
  3.     die("Could not connect: " . mysql_error());  
  4. mysql_select_db("mydb");  
  5.  
  6. $result = mysql_query("SELECT id, name FROM mytable");  
  7.  
  8. while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {  
  9.     printf ("ID: %s  Name: %s"$row[0], $row["name"]);  
  10. }  
  11.  
  12. mysql_free_result($result);  
  13. ?>  

mysql_fetch_row相比,mysql_fetch_array也并不慢的

  
  
  
  
  1. <?php  
  2. $result = mysql_query("SELECT id,email FROM people WHERE id = '42'");  
  3. if (!$result) {  
  4.     echo 'Could not run query: ' . mysql_error();  
  5.     exit;  
  6. }  
  7. $row = mysql_fetch_row($result);  
  8.  
  9. echo $row[0]; // 42  
  10. echo $row[1]; // the email value  
  11. ?>  

7mysql_close()并不一定需要写,因为非持久的连接会在脚本执行完毕后自动关闭

你可能感兴趣的:(PHP,python,职场,休闲)