我有以下代码
$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')"
用于创建日志。那该怎么做?
感谢名单。
答案 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;
}