php调用mysql存储过程_php技巧

前面转载了一篇《php调用mysql存储过程的文章》经过测试,发现文章中的方法似乎不可行!

调用带有select语句的存储过程就出现 PROCEDURE p can't return a result set in the given context的错误。google了半天,在mysql官网上找到一些说法,db_mysql的模块不支持存储过程调用,解决方法是用db_mysqli。测试了一下,果然可以了。

用法比较简单,没啥好说的,从网上copy一段代码吧:

<?php
/* Connect to a MySQL server */
$link = mysqli_connect(
'localhost', /* The host to connect to */
'root', /* The user to connect as */
'root', /* The password to use */
'db_name'); /* The default database to query */
if (!$link) {
printf("Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error());
exit;
}
/* Send a query to the server */
if ($result = mysqli_query($link, "call se_proc('crm')")) {
/* Fetch the results of the query */
while( $row = mysqli_fetch_array($result) ){
echo ($row[0]. "--------- SR. " . $row[1] . "
");
}
/* Destroy the result set and free the memory used for it */
mysqli_free_result($result);
}
/* Close the connection */
mysqli_close($link);
?>

郁闷的是费了半天劲搞出来的存储过程效率居然不如以前- -

时间: 2024-10-27 17:59:46

php调用mysql存储过程_php技巧的相关文章

php调用mysql存储过程实例分析_php技巧

本文实例分析了php调用mysql存储过程的方法.分享给大家供大家参考.具体分析如下: Mysql存储过程创建语法,代码如下: CREATE PROCEDURE和CREATE FUNCTION : 复制代码 代码如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]])       [characteristic ...] routine_body   CREATE FUNCTION sp_name ([func_parameter[,...]])

VB.NET调用MySQL存储过程并获得返回值的方法_实用技巧

本文实例讲述了VB.NET调用MySQL存储过程并获得返回值的方法.分享给大家供大家参考.具体实现方法如下: Dim myConnectionString As String = "Database=" & myDatabase & _ " ;Data Source=" & myHost & _ ";User Id=" & myUserId & ";Password=" &

java调用mysql存储过程实例分析

  本文实例讲述了java调用mysql存储过程的方法.分享给大家供大家参考.具体如下: 数据库的测试代码如下 : 1.新建表test ? 1 2 3 4 5 create table test( field1 int not null ) TYPE=MyISAM ; insert into test(field1) values(1); 2.删除已存在的存储过程: ? 1 2 3 -- 删除储存过程 delimiter // -- 定义结束符号 drop procedure p_test; 3

php调用MySQL存储过程的方法集合

本篇文章是对php调用MySQL存储过程的方法进行了集合与汇总,需要的朋友参考下   类型一:调用带输入.输出类型参数的方法 复制代码 代码如下: $returnValue = ''; try {  mysql_query ( "set @Return" );  $spname = 'P__Test_GetInfo1';  mysql_query ( "call $spname(@Return, '{$userId}', '{$pwd}')" ) or die (

关于mybatis 怎么调用mysql存储过程

问题描述 关于mybatis 怎么调用mysql存储过程 这个过程用到2个表 我想问一下dao层该怎么写 controller又该怎么写 大神能不能详细点 我脑袋有点笨笨的 解决方案 建立存储过程:DELIMITER $$ USE test$$ DROP PROCEDURE IF EXISTS user_user_selectUserByProAndCity_sp$$ CREATE DEFINER=demao@% PROCEDURE user_user_selectUserByProAndCit

mysql c# 存储过程-C#调用MySql存储过程报错,请各位帮忙解答一下

问题描述 C#调用MySql存储过程报错,请各位帮忙解答一下 public DataSet GetPagerList(string tableName, string primaryKey, string columns, string whereSql, string sortField, int? pageSize, int? currPage, bool isDesc) { MySqlParameter[] param = new MySqlParameter[]{ new MySqlPa

Mybatis调用MySQL存储过程的简单实现

1.存储过程的简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的.数据库中的存储过程可以看做是对编程中

mysql-ODBC调用MYSQL存储过程

问题描述 ODBC调用MYSQL存储过程 ODBC访问MySQL地带OUT参数的存储过程时出错,提示信息为:OUT or INOUT argument 1 for routine test.ProcTest2 is not a variable or NEW pseudo-variable in BEFORE trigger 查了资料,貌似是MySQL的bug,是这样的吗?求各位大侠帮帮忙,谢谢了! 解决方案 http://blog.sina.com.cn/s/blog_4b3ad3b70100

存储过程 带参数-java调用mysql存储过程输出参数

问题描述 java调用mysql存储过程输出参数 CREATE PROCEDURE T_WEATHER_PRO (IN tmdn VARCHAR(12),OUT tmsg VARCHAR(12)) BEGIN DECLARE states,beginTime,endTime VARCHAR(2) ; SELECT T_STATES,T_BEGINTIME,T_ENDTIME INTO states,beginTime,endTime FROM T_USER_WEATHER WHERE T_USE