提供的参数不是有效的MySQL结果资源?

时间:2009-08-06 01:55:50

标签: php mysql resources arguments

当我使用此代码供人们输入数据时,我收到此错误。提交表格不会列出,因为它在这种情况下没用:

function some_more_custom_content() {

    $output="<BR>";

    ob_start();

    if ($_REQUEST['code'] != "") {
        $code = $_REQUEST['code'];
        $query="INSERT INTO `fc` (`code`,`datetime`) values ('" . mysql_real_escape_string($code) . "', now())";
        $result=mysql_query($query);

        while ($fetch_array = mysql_fetch_array($result)) {
            $seconds = time() - strtotime($fetch_array["datetime"]);

            if ((time() - $entry['datetime']) < 60*60) {
                echo ("The code " . htmlentities($code) ." was updated less than an hour ago.");
            } else {
                echo ("Inserted " . htmlentities($code) ." into the top.");
            }
        }
    }

知道为什么吗?

3 个答案:

答案 0 :(得分:4)

INSERT语句不返回资源,成功时返回TRUE或失败时返回FALSE。因此,mysql_fetch_array()没有资源可供使用。

(这是人们抱怨PHP的主要原因之一 - 它的语义充其量不一致。)

答案 1 :(得分:2)

if($result!==FALSE) {
    // the insert was ok
} else {
    //the inser failed
}

答案 2 :(得分:0)

变化:

$result=mysql_query($query);

使用:

$result=mysql_query($query) or die(mysql_error());

你会看到错误。