PHP.mk документација

PDOStatement::debugDumpParams

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

pdostatement.debugdumpparams.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека pdostatement.debugdumpparams.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
PDOStatement::debugDumpParams

Референца за `pdostatement.debugdumpparams.php` со подобрена типографија и навигација.

pdostatement.debugdumpparams.php

PDOStatement::debugDumpParams

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::debugDumpParams (PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)

= NULL

public PDOStatement::debugDumpParams(): ?bool

Исфрли подготвена SQL команда SQL Ја исфрла информацијата содржана во подготвена изјава директно на излезот. Таа ќе обезбедиParamsискористена команда, бројот на искористени параметри (param_type), листата на параметри со нивното име или позиција, нивното име, нивната позиција во командата (ако ова е поддржано од PDO драјверот, инаку, ќе биде -1), тип ( is_param.

) како цел број, и булова вредност

Совети

Како и со се што го прикажува својот резултат директно на прелистувачот, функциите за контрола на излезот може да се користат за да се фати излезот на оваа функција и да се зачува во string (на пример).

Ова е функција за дебагирање, која ги исфрла податоците директно на нормалниот излез.

Параметри

Оваа функција нема параметри.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. null, или false operator to check for

Дневник на промени

Верзија = NULL
7.2.0 Ова ќе ги исфрли само параметрите во изјавата во моментот на исфрлање. Дополнителните параметри не се складираат во изјавата и не се прикажуваат. PDOStatement::debugDumpParams()

Примери

Пример #1 Ова ќе ги исфрли само параметрите во изјавата во моментот на исфрлање. Дополнителните параметри не се складираат во изјавата и не се прикажуваат. сега враќа SQL испратен до базата на податоци, вклучувајќи ја целосната, сурова команда (вклучувајќи ги заменетите загради со нивните поврзани вредности). Забележете дека ова ќе биде достапно само ако се вклучени емулирани подготвени изјави.

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour'
);
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();

$sth->debugDumpParams();

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

SQL: [96] SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour
Params:  2
Key: Name: [9] :calories
paramno=-1
name=[9] ":calories"
is_param=1
param_type=1
Key: Name: [7] :colour
paramno=-1
name=[7] ":colour"
is_param=1
param_type=2

Пример #2 Ова ќе ги исфрли само параметрите во изјавата во моментот на исфрлање. Дополнителните параметри не се складираат во изјавата и не се прикажуваат. пример со именувани параметри

<?php

/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$name = 'apple';

$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?'
);
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();

$sth->debugDumpParams();

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

SQL: [82] SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?
Params:  2
Key: Position #0:
paramno=0
name=[0] ""
is_param=1
param_type=1
Key: Position #1:
paramno=1
name=[0] ""
is_param=1
param_type=2

Види Исто така

Белешки од корисници 4 белешки

thefox
12 години пред
This function doesn't print parameter values despite the documentation says it does. See https://bugs.php.net/bug.php?id=52384 (filed back in 2010).
mark на manngo точка net
12 години пред
As noted, this doesn’t actually simply print the prepared statement with data to be executed.

For trouble shooting purposes, I find the following useful:

<?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;
    }

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

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

    print parms($string,$data);
?>
- Поврзува вредност со параметар
пред 10 години
This function doesn't have a return, so if you want to do something with it you'll have to do something like

<?php
function pdo_debugStrParams($stmt) {
  ob_start();
  $stmt->debugDumpParams();
  $r = ob_get_contents();
  ob_end_clean();
  return $r;
}

// omitted: connect to the database and prepare a statement
echo '<pre>'.htmlspecialchars(pdo_debugStrParams($stmt)).'</pre>';
?

Source: http://stackoverflow.com/questions/22157331/something-like-debugdumpparams-in-pdo-settable-to-a-string
Lucas
пред 1 година
Using PHP 8.3 and MySQL 8.2, debugDumpParams() DOES display the "raw" SQL, with parameter values.

E.g. 
$sql = "SELECT tid, miv_title, ballot_order FROM title WHERE tid LIKE :tid AND ballot_order = :order";
$stm = $pdo->prepare($sql);
$stm->bindValue(":tid",   "mi:%");
$stm->bindValue(":order", 5000, PDO::PARAM_INT);
$stm->execute();
$stm->debugDumpParams();

... displays ...

SQL: [92] SELECT tid, miv_title, ballot_order FROM title WHERE tid LIKE :tid AND ballot_order = :order
Sent SQL: [92] SELECT tid, miv_title, ballot_order FROM title WHERE tid LIKE 'mi:%' AND ballot_order = 5000
Params:  2
Key: Name: [4] :tid
paramno=-1
name=[4] ":tid"
is_param=1
param_type=2
Key: Name: [6] :order
paramno=-1
name=[6] ":order"
is_param=1
param_type=1
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.