SELECT * FROM `ware_house_indents` WHERE `has_cancel` = ? AND `eid`= ?
我需要在mysqli中获得高于查询的结果。但我不能使用get_result()函数,因为它不能在server.i中找到这个功能,它工作正常。但是这个函数不能传递多个参数。请帮我解决这个问题。
function db_bind_array($stmt, &$row)
{
$md = $stmt->result_metadata();
$params = array();
while($field = $md->fetch_field()) {
$params[] = &$row[$field->name];
}
return call_user_func_array(array($stmt, 'bind_result'), $params);
}
function db_query($db, $query, $types, $params)
{
$stmt = $db->prepare($query);
$bindRet = call_user_func_array(array($stmt,'bind_param'),
array_merge(array($types), $params));
$stmt->execute();
$result = array();
if (db_bind_array($stmt, $result) !== FALSE) {
return array($stmt, $result);
}
$stmt->close();
return FALSE;
}
if (($qryRes = db_query($mysqli, $sql, 'i', array(&$var))) !== FALSE) {
$stmt = $qryRes[0];
$row = $qryRes[1];
while ($stmt->fetch()) {
print_r($row);
}
$stmt->close();
}
答案 0 :(得分:1)
让我建议你一个非常间接的解决方案 如果开始使用PDO而不是mysqli
,你会给自己一个巨大的帮助在处理预准备语句时没有mysqli缺点,因为它可以更好地实现上述功能。因此,它可以让您将数据分成几行:
$sql = "SELECT * FROM ware_house_indents WHERE has_cancel = ? AND eid= ?";
$stm = $pdo->prepare($sql);
$stm->execute(array($cancel,$eid));
$data = $stm->fetchAll(); // or fetch() if you need only one row
那是所有