0

我正在尝试使用从先前的 sql 语句中获取的 id 来获取该 id 的表信息,但$query3总是返回FALSE,我似乎无法弄清楚。我已连接到数据库,并且我确实有权访问此表。id 在每种情况下也是正确的。

代码

global $con;
$query = $con->prepare("SELECT * FROM allTeams WHERE Coach = ?");
$query->bind_param('s',$username);
$query->execute();
$query->bind_result($Id,$time,$day,$coach,$hCoach);

$date = date('d-m');
$array = array();

while($row = $query -> fetch())
{
    var_dump($Id);
    echo "<br />";
    $teamId = strval($Id);
    $query3 = $con -> query("DESCRIBE `$teamId`");
    var_dump($query3);
    echo "<br />";
}

输出

int(1022) 
bool(false) 
int(1023) 
bool(false) 
int(2033) 
bool(false) 
4

1 回答 1

1

您正在尝试对同一个$con对象运行查询,而其中一个对象已经打开。你不能那样做。

您需要做的是调用store_result以关闭第一个查询,然后才能运行新查询。

global $con;
$query = $con->prepare("SELECT * FROM allTeams WHERE Coach = ?");
$query->bind_param('s',$username);
$query->execute();
$query->store_result();
$query->bind_result($Id,$time,$day,$coach,$hCoach);

$date = date('d-m');
$array = array();

while($row = $query -> fetch())
{
    var_dump($Id);
    echo "<br />";
    $teamId = strval($Id);
    $query3 = $con -> query("DESCRIBE `$teamId`");
    var_dump($query3);
    echo "<br />";
}
于 2013-06-26T18:24:13.827 回答