Отображение значения bindParam с использованием PHP PDO - PullRequest
6 голосов
/ 07 сентября 2010

Есть ли простой способ отобразить значение, сохраненное в связанном параметре.

$sql ="call storedproc(:firstname, :lastname)";
$stmt = $this->DBH->prepare($sql);
$stmt->bindParam(':firstname', $fname);
$stmt->bindParam(':lastname', $lname);

//I want to do this
echo $stmt->firstname;
$stmt->execute;

Ответы [ 2 ]

8 голосов
/ 07 сентября 2010

Если вы хотите только «увидеть», что происходит, тогда есть PDOStatement-> debugDumpParams () :

Сбрасывает информацию, содержащуюся в подготовленном операторе, непосредственно на вывод. Он предоставит используемый SQL-запрос, количество используемых параметров (Params), список параметров с их именем, типом (paramtype) в виде целого числа, именем ключа или позицией, значением и позицией в запросе. (если это поддерживается драйвером PDO, в противном случае это будет -1).
0 голосов
/ 08 октября 2018
<?php 
    function parms($string,$data) {
        $indexed=$data==array_values($data);
        foreach($data as $k=>$v) {
            if(is_string($v)) $v="'$v'";
            if($indexed) $string=preg_replace('/\?/',$v,$string,1);
            else $string=str_replace(":$k",$v,$string);
        }
        return $string;
    }

    $string='INSERT INTO stuff(name,value) VALUES (?,?)';
    $data=array('Fred',23);

    $string='INSERT INTO stuff(name,value) VALUES (:name,:value)';
    $data=array('name'=>'Fred','value'=>23);

    print parms($string,$data);

    $update = "update registration";
    $update .= " set status=:statusid";     
    $update .= " where refid=:refid";               
    $stmt = $db->prepare($update);

    $data=array('statusid' => $statusid,'refid' => $refid);
    echo parms($update,$data); // checking bind values
    exit; 

    $stmt->execute(array ('statusid' => $statusid,'refid' => $refid));
?>

// выход

update registration set status='all' where refid='45'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...