PHP5 Mysqli类未输出数据
所以我正在尝试创建一个备份类,这就是我目前所拥有的。问题是$tbl_数据为空。我做错了什么 已成功连接到数据库 如果没有“echo$tbl_data”,则“$current_table-current table”输出是正确的,但如果使用了“echo$tbl_data”,则只显示第一个表(首先尝试备份两个表)PHP5 Mysqli类未输出数据,php,oop,mysqli,Php,Oop,Mysqli,所以我正在尝试创建一个备份类,这就是我目前所拥有的。问题是$tbl_数据为空。我做错了什么 已成功连接到数据库 如果没有“echo$tbl_data”,则“$current_table-current table”输出是正确的,但如果使用了“echo$tbl_data”,则只显示第一个表(首先尝试备份两个表) mBackup类{ private$_connection=“”;//数据库连接变量 private$output=“”;//sql输出 私人$tbl_数据=”; 私人$tbl_row=“
mBackup类{
private$_connection=“”;//数据库连接变量
private$output=“”;//sql输出
私人$tbl_数据=”;
私人$tbl_row=“”;
私有$nfields=“”;
私有$create_table_query=“”;
私有$create_table_output=“”;
公共函数构造($dbhost、$dbname、$dbuser、$dbpassword){
$this->_connection=newmysqli($dbhost、$dbuser、$dbpassword、$dbname);
//可能的连接错误
如果($this->\u connection->connect\u errno){
echo“未能连接到数据库”;
}
否则{
回声“已连接
”;
}
}
公共功能备份_db(){
//从数据库中获取表名并存储在数组中
$result=$this->_连接->查询(“显示表”);
//获取表名
而($row=$result->fetch_row())
{
$table_names[]=$row[0];
}
//每张桌子
foreach($table\u名称为$current\u table)
{
echo$current_table.“-当前表
”;//调试
$tbl_data=“”;
$tbl_row=“”;
$nfields=“”;
$create_table_query=“”;
$create_table_output=“”;
//从正在使用的表中选择所有内容
$query=$this->_connection->prepare(“选择*FROM?”);
$query->bind_参数('s',$current_table);
$query->execute();
$query->bind_结果($tbl_数据);
$query->fetch();
回显$tbl_数据。“
”;
}
}
尝试以下方法:
while ($query->fetch()) {
echo $tbl_data;
}
我知道的很少,bind_result将结果集中的列绑定到变量。如果您的表有5列,您应该有bind_result($var1,$var2,$var3,$var4,$var5)但由于您的列数将根据表的不同而变化,我不知道bind_result是否能满足您的需要
尝试在每次循环后关闭准备好的语句
$query->close();
或者重置
$query->reset()
不能使用?作为表名。有关标记的允许位置,请参见中的第二个注释。因此,您必须使用普通变量插值构造查询:
$select = sprintf("SELECT * FROM `%s`", $current_table);
$result = $this->_connection->query($select);
是否至少已“连接”?是和$current_table-current table输出。请尝试关闭准备好的语句或重置
$select = sprintf("SELECT * FROM `%s`", $current_table);
$result = $this->_connection->query($select);