PHP函数中的SQL Query无法回显mysql_num_rows

时间:2014-01-01 17:41:43

标签: php mysql sql

我正在使用这个PHP函数来运行SELECT查询:

function SelectQuery ($sql) {
        global $conn;
        $SelectQuery = mysql_query($sql,$conn);
        $SelectQuery_Results=array();
        while($SelectQuery_Row = mysql_fetch_array($SelectQuery)) {
            $SelectQuery_Results[] = $SelectQuery_Row;
        }
        return $SelectQuery_Results;
    }

然后我称之为:

$sql="SELECT * from tickets where ticketnumber = '".mysql_real_escape_string($_GET["seq"])."' ";
$ticket=SelectQuery($sql);
$ticket = $ticket[0];

并显示我正在执行的结果$ticket["column"];

等...

当我调用该函数时,我无法回显mysql_num_rows

我尝试在函数中执行以下操作:

function SelectQuery ($sql) {
    global $conn;
    $SelectQuery = mysql_query($sql,$conn);
    **return mysql_num_rows($SelectQuery);**
    $SelectQuery_Results=array();
    while($SelectQuery_Row = mysql_fetch_array($SelectQuery)) {
        $SelectQuery_Results[] = $SelectQuery_Row;
    }
    return $SelectQuery_Results;
}

function SelectQuery ($sql) {
    global $conn;
    $SelectQuery = mysql_query($sql,$conn);
    **return mysql_num_rows($sql);**
    $SelectQuery_Results=array();
    while($SelectQuery_Row = mysql_fetch_array($SelectQuery)) {
        $SelectQuery_Results[] = $SelectQuery_Row;
    }
    return $SelectQuery_Results;
}

function SelectQuery ($sql) {
    global $conn;
    $SelectQuery = mysql_query($sql,$conn);
    **mysql_num_rows($SelectQuery);**
    $SelectQuery_Results=array();
    while($SelectQuery_Row = mysql_fetch_array($SelectQuery)) {
        $SelectQuery_Results[] = $SelectQuery_Row;
    }
    return $SelectQuery_Results;
}

function SelectQuery ($sql) {
    global $conn;
    $SelectQuery = mysql_query($sql,$conn);
    **mysql_num_rows($sql);**
    $SelectQuery_Results=array();
    while($SelectQuery_Row = mysql_fetch_array($SelectQuery)) {
        $SelectQuery_Results[] = $SelectQuery_Row;
    }
    return $SelectQuery_Results;
}

当我调用该函数时:

$sql="SELECT * from tickets where ticketnumber = '".mysql_real_escape_string($_GET["seq"])."' ";
$ticket=SelectQuery($sql);
$ticket = $ticket[0];
**echo mysql_num_rows($ticket);**

但没有一个正在运作

1 个答案:

答案 0 :(得分:1)

你需要从函数内部运行:

echo mysql_num_rows($SelectQuery);

这就是mysql_num_rows的工作方式,以及查询返回的结果集。

如果要从函数外部获取两个值,可以将它们都返回:

在功能

return array($SelectQuery_Results, mysql_num_rows($SelectQuery));

并在通话中

list($ticket, $n_rows) = SelectQuery($sql);

所以,函数就像

function SelectQuery ($sql) {
    global $conn;
    $SelectQuery = mysql_query($sql,$conn);
    echo mysql_num_rows($SelectQuery);
    $SelectQuery_Results=array();
    while($SelectQuery_Row = mysql_fetch_array($SelectQuery)) {
        $SelectQuery_Results[] = $SelectQuery_Row;
    }
    return array($SelectQuery_Results, mysql_num_rows($SelectQuery));
}

和电话

$sql="SELECT * from tickets where ticketnumber = '".mysql_real_escape_string($_GET["seq"])."' ";
list($ticket, $n_rows)=SelectQuery($sql);
var_dump($ticket);
var_dump($n_rows);
$ticket = $ticket[0];

我添加了var_dump,因此您可以看到正在生成的值。