php – pdo没有从mysql函数中读取字符串

我使用以下代码mysql函数读取字符串

<?PHP
print_r($_POST);
try {
    $dbh = new PDO("MysqL:dbname=mydb;host=myhost","myuser","mypass" );

    $value = $_POST['myLname'];

    print $value ;
    //print $dbh ;

    $stmt = $dbh->prepare("CALL check_user_exists(?)");
    $stmt->bindParam(1,$value,PDO::ParaM_STR | PDO::ParaM_INPUT_OUTPUT,50);

    // call the stored procedure
    $stmt->execute();

    print "procedure returned $value\n";

    echo "PDO connection object created";
    $dbh = null;

} catch(PDOException $e) {
    echo $e->getMessage();
}
?>

这不是读取返回值,但是如果我读取值usimg MysqL *就像:

<?PHP

$dbhost='myhost';
        $dbuser='mydb';
        $dbpassword='mypass';
        $db='mydb';

        $con=MysqL_connect($dbhost,$dbuser,$dbpassword) or die("Could not connect: " . MysqL_error()); ;
        MysqL_select_db($db,$con);
        $qry_str = "select check_user_exists('chadhass@hotmail.com')";

        $rset = MysqL_query($qry_str) or exit(MysqL_error());
                $row = MysqL_fetch_assoc($rset);
                MysqL_close($con);
        foreach($row as $k=>$v)
        {
            print $k.'=>'.$v;
        }

?>

这会正确返回.我有什么想法,我错过了吗?

功能

CREATE
FUNCTION `check_user_exists`(in_email
VARCHAR(100)) RETURNS varchar(1) CHARSET utf8
READS sql DATA
BEGIN
DECLARE vcount INT;
DECLARE vcount1 INT;
SELECT COUNT(*) INTO vcount FROM USERS
WHERE USEREMAIL=in_email;
IF vcount=1 then
SELECT COUNT(*) INTO vcount1 FROM USERS
WHERE USEREMAIL=in_email and isactive=1;
if vcount1=1 then
return('1');
else
return('0');
end if;
ELSE
RETURN('2');
END IF;
END

适用于PDO的代码::

<?PHP
//print_r($_POST);
try {
    $dbh = new PDO(PDO("MysqL:dbname=mydb;host=myhost","mypass" ); 



    $value = $_POST['myLname'];


    $result = $dbh->prepare("select check_user_exists(?) as retval");
    $result->bindParam(1,PDO::ParaM_STR,2);
    $result->setFetchMode(PDO::FETCH_CLASS,'stdClass');
    $result->execute();
    $obj = $result->fetch();

print($obj->retval);




    echo "PDO connection object created";
    $dbh = null;
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }

?>

解决方法

原因是,您没有从查询获取结果.

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...