我想用参数打印PHP查询

时间:2017-06-07 10:17:27

标签: php parameters echo

我有以下代码

$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')"

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

感谢名单。

3 个答案:

答案 0 :(得分:2)

尝试如下所示的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);

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我已经解决了!

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