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遍历关联数组的使用方法!
//连接数据库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遍历关联数组的使用方法!