繁体   English   中英

我想用参数打印PHP查询

[英]I want to print PHP query with parameters

我有以下代码

$name = 'myname';
$mail = 'my@mail.it';
$qwt = "INSERT INTO `agenz` (`name`, `email`) VALUES (?,?)";
$result = $connessione->prepare($qwt);
$result->bind_param('ss', $name, $mail); 
$result->execute(); 

我想打印查询

"INSERT INTO `agenz` (`name`, `email`) VALUES ('myname','my@mail.it')"

用于创建日志。那么该怎么做?

感谢名单。

尝试下面的fullQuery:

$name = 'myname';
$mail = 'my@mail.it';
$qwt = "INSERT INTO `agenz` (`name`, `email`) VALUES (?,?)";
$result = $connessione->prepare($qwt);
$result->bind_param('ss', $name, $mail); 
$result->execute(); 

echo $result->fullQuery;

要么

$result->debugQuery();
var_dump($result->debugBindedVariables());

如果你想得到错误

var_dump($result->errno);

您可以直接在语句中使用变量,如下所示

$name="ABC";
$mail="me@someone.com";
$value= "I am $name mail id $mail";

我已经解决了!

  $qwt = "INSERT INTO `age` (`name`,`email`) VALUES (?,?)";
  $par = array($name, $mail);

  $result = $connessione->prepare($qwt);
  $result->bind_param('ss', $par[0], $par[1]); 
  $result->execute();

  echo "contenuto: " .SqlDebug($qwt, $par); 

  function SqlDebug($raw_sql, $params=array())
  {
  $keys = array();
  $values = $params;  
  foreach ($params as $key => $value)
  {
    // check if named parameters (':param') or anonymous parameters ('?') are    used
    if (is_string($key)) { $keys[] = '/:'.$key.'/'; }
    else                 { $keys[] = '/[?]/'; }
    // bring parameter into human-readable format
    if (is_string($value))    { $values[$key] = "'" . $value . "'"; }
    elseif (is_array($value)) { $values[$key] = implode(',', $value); }
    elseif (is_null($value))  { $values[$key] = 'NULL'; }
  }
  $raw_sql = preg_replace($keys, $values, $raw_sql, 1, $count);
  return $raw_sql;
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM