弄清楚我为什么会出现资源ID#5错误


Figuring out why I am getting a Resource ID #5 error

这是我代码的一部分,echo是为了测试值,它给了我资源ID#5

$id = mysql_query("SELECT id FROM users WHERE firstname='$submittedfirstname' AND lastname='$submittedlastname' AND email='$submittedemail'") or die(mysql_error());
$counter = mysql_num_rows($id);
echo $id;

我刚开始编程,最近在使用数据库时看到了很多资源ID输出/错误。

有人能纠正我代码中的错误吗?请解释为什么它没有给我所需的输出?

这不是一个错误。这类似于在不指定索引的情况下打印数组,并且只打印字符串"array"。您可以使用mysql_fetch_array()等函数访问该资源中包含的实际数据(可以将其视为数据集合)。

事实上,如果这里有一个错误,$id的值将不是一个资源。在使用应该包含资源的变量之前,我通常使用is_resource()函数来验证一切是否正常。

我想你打算做的是:

$result = mysql_query("SELECT id FROM users WHERE firstname='$submittedfirstname' AND lastname='$submittedlastname' AND email='$submittedemail'") or die(mysql_error());
if(is_resource($result) and mysql_num_rows($result)>0){
    $row = mysql_fetch_array($result);
    echo $row["id"];
    }

你是指echo $counter吗?CCD_ 2是资源,因为CCD_。

如果您试图从查询中获取id列的值,则需要使用例如mysql_fetch_array()

以下是摘录自http://php.net/mysql.examples-basic:

$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
// Printing results in HTML
echo "<table>'n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "'t<tr>'n";
    foreach ($line as $col_value) {
        echo "'t't<td>$col_value</td>'n";
    }
    echo "'t</tr>'n";
}
echo "</table>'n";

根据您提供的代码进行调整,它可能看起来像这样:

$result =
  mysql_query("SELECT id FROM users WHERE firstname='$submittedfirstname' AND lastname='$submittedlastname' AND email='$submittedemail' LIMIT 1")
    or die(mysql_error());
if( $row = mysql_fetch_array($result, MYSQL_ASSOC) )
{
  $id = $row['id'];
}
else
{
  // No records matched query.
}

请注意,在我的代码中,我还向查询添加了LIMIT 1,因为您似乎只对获取一行感兴趣。

你在找吗

while ($row = mysql_fetch_array($id)) {
 echo $row['id'];
}

$kode_gel=substr($_GET['gel'],0,3);$no_gel=substr($_GET['gel'],3,5);

$cek = mysql_query("SELECT id_arisan 
                    FROM arisan WHERE kode_gel = '".$kode_gel."'
                    AND no_gel = '".$no_gel."'");
       $result = mysql_fetch_array($cek);
       $id = $result['id_arisan'];
   header("location: ../angsuran1_admin.php?id=".$id);