【发布时间】:2017-03-11 21:43:13
【问题描述】:
SQL
CREATE PROCEDURE `my_sp`(
IN in_var VARCHAR(32),
OUT out_var VARCHAR(255)
)
BEGIN
/*This work OK*/
SELECT my_column INTO out_var FROM my_table WHERE my_column = in_var LIMIT 1;
/*This not work*/
SELECT * INTO out_var FROM my_table WHERE my_column = in_var LIMIT 1;
END;
PHP
$dbh = new PDO( $connection_params );
$sql = "CALL my_sp( :in_var , @outvar )";
$stmt = $dbh->prepare( $sql );
$stmt->execute( array( ':in_var' => $_POST['in_var'] ) );
$sql = "SELECT @outvar";
$query = $dbh->query( $sql );
$result = $query->fetchAll( PDO::FETCH_ASSOC );
当我尝试 'SELECT * ...' 时,在 php var_dump($stmt) 中返回 false;
我是从 MySQL 入手的,不知道是不是不能在存储过程中做这种类型的查询(SELECT *),还是别的什么?
【问题讨论】:
-
嗯,多列不等于一个变量。这个错误完全有道理。