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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |