-1

出于某种原因,我得到了这个:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/walterg/public_html/phptest.php on line 50

Warning: mysql_close(): 5 is not a valid MySQL-Link resource in /home/walterg/public_html/phptest.php on line 60

我只是想做一个简单的 sql 查询,但我得到了错误

我的代码是:

$con = mysql_connect("localhost","walterg_kaden","nope");

    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("walterg_learning", $con);

    $result = mysql_query("SELECT * FROM ralf");

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



    mysql_close($con);
4

4 回答 4

1

2个简单的规则让你做对

第一的。始终以这种方式运行查询,至少在您采用更智能的方式处理查询之前:

$sql = "SELECT * FROM ralf";
$res = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);

第二。相信你的眼睛!

如果数据库告诉您“没有选择数据库” - 那么就是这样。表示您在前面的语句中选择了错误的数据库。检查拼写、数据库是否存在等。
这很容易。您不需要对此有任何特殊知识 - 只需要常识即可。

于 2012-04-21T06:34:24.053 回答
0

拉里,你的 sql 失败了。出于调试原因(例如您今天遇到的原因),始终必须有一种方法可以在每次执行 sql 的过程中打印出任何错误 aa 故障安全,以便如果出现任何问题,您可以确保打印错误在那里,然后在发生错误时,以便您可以立即找到并解决问题

您的 SQL 查询失败。使用 mysql_error();。这将显示问题。

$result = mysql_query("SELECT * FROM ralf") or trigger_error(mysql_error());

PHP 数据库连接有五个步骤:

    // 1. Create a database connection
    //      (Use your own servername, username and password if they are different.)
    //      $connection allows us to keep refering to this connection after it is established
    $connection = mysql_connect("localhost","root","OtlPHP07"); 
    if (!$connection) {
        die("Database connection failed: " . mysql_error());
    }

    // 2. Select a database to use 
    $db_select = mysql_select_db("widget_corp",$connection);
    if (!$db_select) {
        die("Database selection failed: " . mysql_error());
    }

?>
<html>
    <head>
        <title>Databases</title>
    </head>
    <body>
    <?php
    // 3. Perform database query
    $result = mysql_query("SELECT * FROM subjects", $connection);
    if (!$result) {
        die("Database query failed: " . mysql_error());
    }

    // 4. Use returned data
    while ($row = mysql_fetch_array($result)) {
        echo $row["menu_name"]." ".$row["position"]."<br />";
    }

    ?>
    </body>
</html>
<?php
    // 5. Close connection
    mysql_close($connection);
?>
于 2012-04-21T06:05:00.363 回答
-1

肯定有两个原因..... 1. 可能是您在使用 select 查询或分配主机、用户名、密码、db 时分配表 naem 时弄错了 2. 您必须在 while 循环之前使用它

if(mysql_num_rows($result)>0){ while($row = mysql_fetch_array($result))
     {
        echo $row['name'];
    } }

希望能解决你的问题

于 2012-04-21T06:02:51.413 回答
-2

这将告诉您查询失败的原因:

$result = mysql_query("SELECT * FROM ralf") or die(mysql_error());
于 2012-04-21T06:03:08.180 回答