0

在 php 函数中,我尝试在数据库表中插入一行

function abnc()
{

$link = conn to db;
$query = "insert into table( a,c ,v) values (1,2,3);"
$result = mysqli_query($link, $query);
if(mysqli_rows_affected($link) == 1){
close conn;
return true;}
else{
return false;
close conn;
}

现在,在其他地方,我调用了这个函数,并尝试读取我插入的值

$done = abnc();
if($done)
{
$query = "select * from table where a=1 and c=2 and v=3";
$result = mysqli_query($link, $query);
echo "true";
echo mysqli_num_rows($result);
}
else
{
echo 'false';
}

我得到的输出是true0;

我认为当函数执行时,脚本只是继续。我希望它等到函数执行完成。有什么解决办法??

4

3 回答 3

0

您在函数中关闭了数据库连接,尝试在函数外部打开它并在脚本结束时关闭。

于 2012-06-22T07:54:59.827 回答
0

脚本不会继续。当您调用 abnc() 时,该函数将被执行并返回一个您存储在变量 $done 中的值。由于您的输出为 true0,因此该值可能为 true。

在 abnc() 中插入一行。这意味着有一行受到影响并且函数返回 true。并且您关闭了数据库连接,这可能是您以后无法访问插入数据的原因。

于 2012-06-22T07:43:26.807 回答
0

尝试这个

$done = abnc();
$link = conn to db;

if ($done) {
    $query = "select * from table where a=1 and c=2 and v=3";
    $result = mysqli_query($link, $query);
    if (mysqli_num_rows($result) > 0) {
        do {
            $resultSet = array();
            if (($row = mysqli_store_result($link))) {
                while ($row = mysqli_fetch_assoc($row)) {
                    $resultSet[] = $row;
                }
                $return[] = $resultSet;
                @mysqli_free_result($row);
            }
        } while (@mysqli_next_result($link));
        return $return;
    }
} else {
    return false;
}
于 2012-06-22T07:45:33.490 回答