-1

我有以下代码:

<?php
    $host="database.com"; // Host name 
    $username="user"; // Mysql username 
    $password="password"; // Mysql password 
    $db_name="database"; // Database name 
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");

    $contact_id = mysql_real_escape_string($_GET['contact_id']);

    $sql="select ( if(month(now()) < 9, year(now()) - 1, year(now())) - year(dob) - if(month(dob)<9, 0, 1)  ) as ageOnLastSeptember from members_family where contact_id = '$contact_id' ";

    $result=mysql_query($sql);
    while($rows=mysql_fetch_array($result)){
        echo $rows['ageOnLastSeptember'];
    }
    mysql_close();
?>

由于某种原因,它不起作用,我收到以下错误消息:

警告:mysql_fetch_array() 期望参数 1 是资源,在第 4702 行的 /record_view/index.php 中给出布尔值

4

4 回答 4

2

这意味着您的查询失败。如果您使用错误处理程序,您会知道这一点...

$result=mysql_query($sql) or die(mysql_error());
于 2013-04-15T14:39:02.833 回答
1

看起来SQL有问题尝试直接运行SQL。

另外看看使用mysqli/pdo mysql的功能很快就会被贬值

于 2013-04-15T14:39:00.383 回答
1

从另一个 SO 线程

如果 mysql_query 失败,它会返回 false,一个布尔值。当您将它传递给 mysql_fetch_array 函数(需要一个 mysql 结果对象)时,我们会收到此错误。

于 2013-04-15T14:40:31.573 回答
1

对于 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他返回结果集的语句,mysql_query() 成功时返回资源,错误时返回 FALSE。所以选择不正确。在 phpmyadmin 或您拥有 bd 的地方单独尝试,看看它是否有效。

于 2013-04-15T14:41:39.250 回答