加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 17:13:01 所属栏目:PHP教程 来源:网络整理
导读:我使用以下代码从 mysql函数中读取字符串: ?phpprint_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(?
我使用以下代码从 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 $valuen";

    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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读