php调用mysql存储过程返回结果集

 更新时间:2016年11月25日 16:08  点击:1786
 最近开发一个项目,用到这个,记一下:

关键就是两点

1 define('CLIENT_MULTI_RESULTS', 131072);
2 
3 $link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());

下面就可以正常使用了,以下是例子程序。

 1 <?php
 2     define('CLIENT_MULTI_RESULTS', 131072);
 3 
 4     $link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());
 5     mysql_select_db("vs") or die("Could not select database");
 6 ?>
 7 
 8 <?php
 9         $result = mysql_query("call get_news_from_class_id(2)") or die("Query failed:" .mysql_error());
10         while($row = mysql_fetch_array($result, MYSQL_ASSOC))
11         {
12                 $line = '<tr><td><a target = _blank href=''.$row["url"].''>'.$row["title"].'('.$row["page_time"].')'.'</a></td></tr>';
14                 echo $line;
15                 printf("n");
16 
17         }
18         mysql_free_result($result);
19 ?>
20 
21 <?php
22     mysql_close($link);
23 ?>

< <HTML>
<HEAD>
<TITLE> php调用js文件的好办法</TITLE>
</HEAD>
<BODY>
<scrīpt language=''javascrīpt'' type=''text/javascrīpt'' src=''test.php''></scrīpt>
<scrīpt>
ok("aaaaaa!");
</scrīpt>
</BODY>
</HTML>


test.php:

<?php
echo "
function ok(msg){
alert(msg);
}
";
?>

  当我们使用下面的PHP语句发送中文电子邮件的时候,会发现邮件的标题是乱码,而邮件正文却是正确的,如何才能使得邮件标题不是乱码呢?

  $subject = stripslashes($the_post[''Title'']);
  $headers = "MIME-Version: 1.0rn";
  $headers .= "Content-type: text/plain; charset=utf-8rn";
  $headers .= "Content-Transfer-Encoding: 8bitrn";
  $message = stripslashes(strip_tags($the_post[''Content'']));
  mail($to, $subject, $message, $headers);

  先用函数base64_encode() — 使用 MIME base64 对数据进行编码
  标题字符串前加编码类型例如: =?UTF-8?B?
  标题字符串后加:?=

  例如:

  $subject = "=?UTF-8?B?".base64_encode($subject)."?=";

  将上面一句添加到代码之中,这样,发送的中文邮件标题就不是乱码了。

 

  1. 简单邮件发送
  PHP函数库中有一个mail函数,可以用来进行简单的邮件发送,函数原型为:
  boolean mail(string $to, string $subject, string $message, string [$additional]);
  $to指定邮件寄送地址,$subject指定邮件标题,$message指定邮件内容,$additional指定邮件的附加头部,例如:
  
  
复制PHP内容到剪贴板
PHP代码:
  <?php
  mail( "ywg_263@263.net", "message from php", "hello, xiaoyz! " );
  ?>
  就可以向 ywg_263@263.net发送一个标题为“message from php” 内容为“hello, xiaoyz!”的邮件,其中的邮件接受人$to可以是多个邮件地址,也就是说可以同时给多个人发送同一份邮件,邮件地址之间用逗号分隔,示例如下:
  
  
复制PHP内容到剪贴板
PHP代码:
  <?php
  $emails = Array( "xiaoyz@birdy.dhs.org", "xiaoyz@hotmail.com" );
  mail( implode(",", $emails), "message from php", "hello, xiaoyz!" );
  ?>
  笔者做过的论坛程序中的注册部分就曾经使用过这种方法,不过最后还是采用了一种变通的形式,下文将会具体讲到。其中主要的需求是:当一个用户注册之后,必须得到组管理员的身份确认才能成为论坛的正式会员,我所采用的方法是:用户注册完成提交表单时,先把用户各种注册信息写入数据库,同时把用户的必要信息通过邮件的方式发送给用户所注册组的所有组管理员(如果没有组管理员的话,会给站管理员发送邮件,并告之该组没有组管理员),当然,读者可能会觉得如果有人恶意注册了很多id的话是否会在数据库中造成很多垃圾信息呢?这种考虑是必要的,所以我们需要给出一个策略,提供一个管理界面,来剔除掉这些垃圾,一种简单的方法就是对于超过了给定时期还没有成为正式会员的id一律删除,前提就是必须保证组管理员要在给定时期之内审批这些id,否则会造成误删。读者可以试试上面的代码能否工作,如果没有发送成功,请考虑重新配置邮件服务器的smtp服务。好了,按照上述形式发送的邮件将只是简单的文本形式,如果希望发送一个HTML形式的邮件,就需要知道如何发送MIME形式的邮件了。
  2. MIME邮件发送
  MIME(Multi-purpose Internet Mail Extensions,多用途Internet邮件扩展) 协议扩展了基于文本的Internet邮件系统,以便可以在消息体中包含二进制附件。MIME信息由正常的Internet文本邮件组成,在文本邮件中包含了一些信息头和格式化过的信息体(用ASCII 码子集表示的附件),这些MIME信息头给出了在邮件中表示附件的特定方法。
  刚才通过mail函数发送的邮件接受之后的MIME信息如下(其中的localhost
  (localhost[127.0.0.1])表示采用本机上的postfix提供的smtp服务,userid 48表示apache):
  [code]
  Received: from localhost (localhost [127.0.0.1])
  by mx01.263.net (Postfix) with SMTP id E7C8B1DC38A78
  for <ywg_263@263.net>; Sat, 8 Dec 2001 20:08:45 +0800 (CST)
  Received: by birdy.dhs.org (Postfix, from userid 48)
  id 706F3C4923A; Sun, 9 Dec 2001 03:52:26 +0800 (CST)
  T ywg_263@263.net
  Subject: message from php
 

1:为什么我得不到变量

  我在一网页向另一网页POST数据name,为什么输出$name时却得不到任何值?
  在PHP4.2以后的版本中register_global默认为off
  若想取得从另一页面提交的变量:

  方法一:在PHP.ini中找到register_global,并把它设置为on.
  方法二:在接收网页最前面放上这个extract($_POST);extract($_GET);(注意extract($_SESSION)前必须要有Session_Start()).
  方法三:一个一个读取变量$a=$_GET["a"];$b=$_POST["b"]等,这种方法虽然麻烦,但比较安全.

  2:调试你的程序

  在运行时必须知道某个变量为何值。我是这样做的,建立一文件debug.php,其内容如下:

  PHP代码:

PHP
  <?PHP
  Ob_Start();
  Session_Start();
  Echo "<pre>";

  Echo "本页得到的_GET变量有:";
  Print_R($_GET);

  Echo "本页得到的_POST变量有:";
  Print_R($_POST);

  Echo "本页得到的_COOKIE变量有:";
  Print_R($_COOKIE);

  Echo "本页得到的_SESSION变量有:";
  Print_R($_SESSION);

  Echo "</pre>";
  ?>

  然后在php.ini中设置:include_path = "c:/php",并将debug.php放在此文件夹,以后就可以在每个网页里包含此文件,查看得到的变量名和值.

  3:如何使用session

  凡是与session有关的,之前必须调用函数session_start();

  为session付值很简单,如:

  PHP代码:

  <?php
  Session_start();
  $Name = "这是一个Session例子";
  Session_Register("Name");//注意,不要写成:Session_Register("$Name");
  Echo $_SESSION["Name"];
  //之后$_SESSION["Name"]为"这是一个Session例子"
  ?>

  在php4.2之后,可以为session直接付值:

  PHP代码:

PHP
  <?PHP
  Session_Start();
  $_SESSION["name"]="value";
  ?>

取消session可以这样:

PHP代码:

<
[!--infotagslink--]

相关文章

  • 金额阿拉伯数字转换为中文的存储过程

    Create Procedure AtoC @ChangeMoney Money as Set Nocount ON Declare @String1 char(20) Declare @String2 char(30) ...2016-11-25
  • PHP操作MSSQL存储过程修改用户密码

    存储过程在数据库的应用中我们用到的非常的多了,下面我们来看一篇关于PHP操作MSSQL存储过程修改用户密码的例子,具体的如下所示。 mssql2008 存储过程 下面可以直接...2016-11-25
  • MySql存储过程之逻辑判断和条件控制

    具体详情请看下文小编给大家带来的知识点。同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE1、IF判断IF判断的格式是这样的:IF expression THEN commands [ELSEIF ex...2015-10-21
  • MySQL中在查询结果集中得到记录行号的方法

    如果需要在查询语句返回的列中包含一列表示该条记录在整个结果集中的行号, ISO SQL:2003 标准提出的方法是提供 ROW_NUMBER() / RANK() 函数。 Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的 ROWNUM ; MS SQL...2015-03-15
  • PHP调用MySQL存储过程并返回值实现程序

    本文章来给大家详细介绍在php中如何来调用执行mysql存储过程然后返回由存储过程返回的值了,有需要了解的同学可进入参考。 。调用存储过程的方法。 a。如果存储过...2016-11-25
  • 浅谈PHP调用Webservice思路及源码分享

    方法一:直接调用复制代码 代码如下:<? /******************************************************************************/ /* 文件名 : soapclient.php /* 说 明 : WebService接口客户端例程 /****************...2014-06-07
  • C#调用存储过程详解(带返回值、参数输入输出等)

    这篇文章主要介绍了C#调用存储过程的方法,结合实例形式详细分析了各种常用的存储过程调用方法,包括带返回值、参数输入输出等,需要的朋友可以参考下...2020-06-25
  • mysql存储过程实现split示例

    复制代码 代码如下:call PROCEDURE_split('分享,代码,片段',',');select * from splittable;复制代码 代码如下:drop PROCEDURE if exists procedure_split;CREATE PROCEDURE `procedure_split`( inputstring varc...2014-05-31
  • c#调用存储过程实现登录界面详解

    c#调用存储过程实现登录界面详解...2020-06-25
  • c#获取存储过程返回值示例分享

    这篇文章主要介绍了C#获取存储过程返回值的方法,大家参考使用吧...2020-06-25
  • 在ACCESS 中调用后台存储过程

    ACCESS是一个Client/Server的优秀前端开发工具,具有易学易用,界面友好,开发简单,和其他数据库接口灵活。但是,它要对大量数据处理时,速度比较慢。深圳供电局现有60万用户,下...2016-11-25
  • php怎么运行c语言?php调用C代码的实现方法

    在php程序中有事会需要用到C代码,这篇文章着重介绍一下用C写php扩展的方法,而且不需要重新编译php。有需要的同学可以参考一下。 在php程序中需要用到C代码,应该是下...2017-07-06
  • C#调用Oracle存储过程的方法

    这篇文章主要介绍了C#调用Oracle存储过程的方法,包含数据库及C#对应的调用代码,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php调用js文件的好办法

    <HTML> <HEAD> <TITLE> php调用js文件的好办法</TITLE> </HEAD> <BODY> <scrīpt language=''javascrīpt'' type=''text/javascrīpt'' src=''test.php''>&...2016-11-25
  • oracle 存储过程、函数和触发器用法实例详解

    这篇文章主要介绍了oracle 存储过程、函数和触发器用法,结合实例形式详细分析了oralce 存储过程、函数和触发器具体功能、原理、定义、使用方法及相关操作注意事项,需要的朋友可以参考下...2020-07-11
  • Oracle存储过程案例详解

    这篇文章主要介绍了Oracle存储过程案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...2021-08-13
  • C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息示例

    这篇文章主要介绍了C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息,结合实例形式总结分析了C#针对SQLServer数据库存储过程及参数信息的各种常见操作技巧,需要的朋友可以参考下...2020-06-25
  • 取得拼音字头的存储过程

    -- ============================================= -- Create scalar function (NWGetPYFirst) -- ============================================= IF EXISTS (SELE...2016-11-25
  • MySQL 存储过程的优缺点分析

    存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。本文将分析存储过程的优缺点...2021-05-20
  • 三层+存储过程实现分页示例代码

    本文为大家介绍下三层+存储过程分页的具体实现,前后台及存储过程代码如下,感兴趣的朋友可以参考下哈...2021-09-22