php与Mysql学习笔记

1, 在php中实现与mysql数据库相连接的步骤:


   //连接数据库server
   @ $conn = mysql_connect('HostName','User','Password')
     该函数将返回一个资源句柄
  
   //判断是否正确连接
     if(!$conn)
     { echo "Can not connect the db";}
   
   //选择一个具体的数据库
     mysql_select_db("db_name",$conn)
   
   //创建一个保存了查询语句的"查询变量"
     $query = "select * from mytable where id = 5";


   //以“查询变量”为函数mysql_query()的参数执行查询语句,返回一个资源句柄
   //在 $result 变量中存放由 mysql_query() 函数返回的数据
     $result = mysql_query($query)
   
   /*定义一个数组$row表示数据表中的一行,使用 mysql_fetch_array() 函数以数组的形式从记录集返回第一行。每个随后对 mysql_fetch_array() 函数的调用都会返回记录集中的下一行。*/
     $row = mysql_fetch_array($result)
   /*while loop 语句会循环记录集中的所有记录,例如: 
     while($row = mysql_fetch_array($result))
     {
        echo row[0].":".row['Name'].", ";
     }     
   //其中,row[0]是以数字为索引的数字数组形式,row['Name']是以键值为索引的关联数组形式
   
   //最后,使用完mysql后,要把数据库连接句柄关掉
   mysql_close($conn);


2, Php中,使用session会话,页面间传递会话变量的步骤:
   (1)在脚本的最前端,添加 session_start() 函数,开始一个会话,创建会话ID


   (2)在php脚本中,注册将要使用的会话变量,在定义的同时,就已经包含了注册的过程:
      $_SESSION['sess_var1'] = $row['Name'];
      $_SESSION['sess_var2'] = "Hello session!";
      注意,在定义的过程中,$_SESSION一定要是大写的,否则无法解析


   (3)在另外的页面最前端,添加 session_start() 开启一个会话。然后使用上一个页面中注册的会话变量$_SESSION['sess_var1']。
      session_start();
      echo "Welcome to the new page!" . $_SESSION['sess_var1'];


   (4)如果不想使用之前的会话,而要自己定义新的,记得要把之前的会话变量注销掉,分两步注销:
      * unset() 函数用于释放指定的session变量: unset($_SESSION['sess_var1'])
      ** 也可以通过 session_destroy() 函数彻底终结 session: session_destroy()




    会话变量 保存在服务器端的 phpSessionTmp 目录下,
    会话ID 通过cookie的形式,保存在客户端机器上。




3, 在php中使用session会话变量时候,遇到错误:
Warning: session_start(): open(/home/allen/PHPWebProject/phpSessionTmp/sess_v4t55oq1966l5009jf9nk2as10, O_RDWR) failed: Permission denied 
原因是:当前用户没有对目录/home/allen/PHPWebProject/phpSessionTmp的写权限。
   phpSessionTmp是第一次执行php脚本时,php引擎根据你在php.ini文件中设置的document root与directory自动在document root目录下为你创建的保存session变量的文件夹。
解决方案是:(1)修改phpSessionTmp的权限:sudo chmod a+wr /home/allen/PHPWebProject/phpSessionTmp
          (2)重启apache服务器 sudo apache2ctl restart.




4,使用session变量在两个页面之间传递的时候,会遇到Notice: Undefined variable\index: _session in...的错误
下面有两种解决办法.
1. 在程序里添加session_start()函数
2. 在php.ini里将session.auto_start = 0设置为session.auto_start = 1


此外,还有可能是由于以下原因引起的:
1、session_star()前面不能有任何字符输入,包括前面不能有空格。 
2、$_SESSION在定义与使用的时候一定要大写,不能用小写。 




5, 对密码进行hash,一般有两种hash函数:md5(), sha1(),他们都是单向哈希的函数,。
   如果要使用一个MYSQL数据库来保存身份验证数据,可以使用PHP的sha1()函数,也可以使用MYSQL提供的sha1()函数。MYSQL提供了比PHP更广泛的哈希算法,
   但是二者的作用是相同的。
   sha1()返回的是一个40个字符的伪随机字符串,且这个输出是确定的,无法返回的,这也是单向与唯一的意义所在。




6,PHP中函数的使用有点特别,不在函数名前面规定返回值类型,全靠return,return返回什么,就返回什么类型的。
   例如:
    /*filled_out()检查所有的表单变量是否都已填写*/
    //输入参数是一个超级全局变量数据:$_POST变量数组 或者 $_GET变量数组
    function filled_out($form_vars)
    {
      //使用foreach语句遍历关联数组,键值对
      foreach($form_vars as $key => $value)
      {
        //内置函数isset()判别一个变量是否已经被创建并且被赋值了
        if(!isset($key)) || ($value==' ')
        {
          echo "请完整填写您的注册信息!"; 
          return false; 
        }
      }
      return true;
    }
     另外,也要注意使用foreach遍历关联数组的使用方法!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值