解决方案 »

  1.   


    $ctable="CREATE temporary TABLE beyond(
      `mbtype` varchar(30) NOT NULL,
      `mstype` varchar(30) NOT NULL,
      `mname` varchar(200) NOT NULL,
      `mcolor` varchar(200) NOT NULL,
      `mcode` varchar(30) NOT NULL,
      `cust` varchar(30) NOT NULL,
      `spdp` float NOT NULL,
      `souput` float NOT NULL,
      `sback` float NOT NULL,
      `sbeyond` float NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=gb2312";
    $conn=mysql_connect("localhost","root","",1,131072)or die("数据库连接失败:".mysql_error()); 
    mysql_select_db("test",$conn)or die("The database is not connect!".mysql_error());
    mysql_query($ctable,$conn);$insert="insert into beyond value(1,2,3,4,5,6,7,8,9,10)";
    mysql_query($insert,$conn);
    $insert="insert into beyond value(11,22,33,44,55,66,77,88,99,1010)";
    mysql_query($insert,$conn);
    $sql="select mbtype,mstype,mname,mcolor,mcode,cust,spdp,souput,sback,sbeyond from beyond where (1=1)";  
    $result=mysql_query($sql,$conn);
    echo mysql_num_rows($result);//这里报SQL没有资源的错误,也就是说临时表里没数据我执行之后显示是2,没有你说的错误哦!
      

  2.   

    存储过程:DROP PROCEDURE `UpdateMcode`//
    CREATE DEFINER=`root`@`localhost` PROCEDURE `UpdateMcode`(
        IN mcode VARCHAR(20),
        IN btype VARCHAR(50),
        IN stype VARCHAR(50),
        IN mname VARCHAR(255),
        IN mcolor VARCHAR(200),
        IN ecode VARCHAR(50),
        IN munit VARCHAR(50)  
        )
    BEGIN
        DECLARE back INT;
        IF LENGTH(mcode)<=0 OR LENGTH(btype)<=0 OR LENGTH(stype)<=0 OR LENGTH(mname)<=0 OR LENGTH(stype)<=0 THEN
            SET back=1;
        SELECT back;
        END IF;
        SET back=0;
        SELECT * FROM test;
        END在php中加上调用存储过程的代码: $ctable="CREATE temporary TABLE beyond(
      `mbtype` varchar(30) NOT NULL,
      `mstype` varchar(30) NOT NULL,
      `mname` varchar(200) NOT NULL,
      `mcolor` varchar(200) NOT NULL,
      `mcode` varchar(30) NOT NULL,
      `cust` varchar(30) NOT NULL,
      `spdp` float NOT NULL,
      `souput` float NOT NULL,
      `sback` float NOT NULL,
      `sbeyond` float NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=gb2312";
    $conn=mysql_connect("localhost","root","",1,131072)or die("数据库连接失败:".mysql_error()); 
    mysql_select_db("test",$conn)or die("The database is not connect!".mysql_error());
    mysql_query($ctable,$conn);$insert="insert into beyond value(1,2,3,4,5,6,7,8,9,10)";
    mysql_query($insert,$conn);
    $insert="insert into beyond value(11,22,33,44,55,66,77,88,99,1010)";
    mysql_query($insert,$conn);
    $sql="select mbtype,mstype,mname,mcolor,mcode,cust,spdp,souput,sback,sbeyond from beyond where (1=1)";  
    $result=mysql_query($sql,$conn);
    echo mysql_num_rows($result).'<br />';//这里报SQL没有资源的错误,也就是说临时表里没数据
    $result=mysql_query("call UpdateMcode('LTSP0000008','皮','牛皮','0035牛皮','黑','','SF')");
    echo mysql_num_rows($result).'<br />';执行结果都是2,2,在mysql的test数据库中建了个test表,随便插入了两条数据。应该没问题的。
      

  3.   

    写写上面这位仁兄,问题已经解决,虽然你说的不全对,但也没错,呵呵,主要原因你可以参考mysql版的结果?