Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将实际的SQL查询打印到文件中?_Php_Mysql_Mysqli_Prepared Statement - Fatal编程技术网

Php 如何将实际的SQL查询打印到文件中?

Php 如何将实际的SQL查询打印到文件中?,php,mysql,mysqli,prepared-statement,Php,Mysql,Mysqli,Prepared Statement,喂,这是我的问题 $stmt = "SELECT * FROM foo WHERE x=?"; 如何将上述查询和绑定参数打印到屏幕或PHP文件中 当我打印$stmt时,它会显示: 无法将mysqli_stmt转换为字符串 这是我的密码: if ($stmt = $this->conn->prepare($query)) { $stmt ->bind_param('ss', $un, $pwd); logToFile ("my.log", "inside mysq

喂,这是我的问题

$stmt = "SELECT * FROM foo WHERE x=?";
如何将上述查询和绑定参数打印到屏幕或PHP文件中


当我打印
$stmt
时,它会显示:

无法将mysqli_stmt转换为字符串

这是我的密码:

if ($stmt = $this->conn->prepare($query)) { 
  $stmt ->bind_param('ss', $un, $pwd); 
  logToFile ("my.log", "inside mysql\n"); 
  logToFile ("my.log", $stmt); 
编辑:

快速回答

啊,我现在明白了。您正在尝试打印数组。您需要对其进行迭代/循环以打印每个值$stmt作为数组从SQLite返回

尝试以下方法开始:

foreach( $stmt as $key => $value){
    echo "Key: $key, Value: $value <br />";
}
方括号中的数字(0,1,2,15)是键,引号中的文本是值。这是一个索引数组,其中每个元素都有一个索引号。关联数组是使用字符串而不是数字来标识数组中的每个项的数组。下面是一个简单的示例:

$myArray['bob'] = "foo";
...
$myArray['joe'] = "bar";
在这个数组中,我们使用字符串作为键,而不是数字。就我个人而言,我只认为这在处理多维数组时有用,但这不是现在


祝你好运,希望这有帮助。

你可以记录你的PHP变量
$query
,它包含带有参数占位符的SQL查询

但您可能希望结合参数值记录查询。这是一个非常常见的请求,但是这些信息不是通过客户端库公开的,因此您无法从PHP中读取

当您
execute()
查询时,可以将查询与MySQL中的参数值结合起来

print $query;
但你不知道$query中有什么吗

尝试:

它将告诉您stmt对象中的内容


实际上,serialize是我最喜欢的调试输出格式。

如果您想问一个有错误的问题,请发布代码!我们不是读心术的人。这里是:if($stmt=$this->conn->prepare($query)){$stmt->bind_param($ss',$un,$pwd);logToFile(“my.log”,“inmysql\n”);logToFile(“my.log”,“$stmt”);这对我来说很有意义。他有一个已准备好的查询。在准备过程中,它不会存储为字符串,您无法从中获取作为字符串的简单SQL查询。不过,我不是100%同意,所以我只做一个注释。Moshe,这给出了一个错误。>可捕获的致命错误:类mysqli_stmt的对象无法在H:\wamp\www\magi中转换为字符串第29行的cmall\classes\Mysql.php
print $query;
print serialize($stmt);