不知道为什么这段代码不起作用

时间:2012-04-21 05:54:15

标签: php mysql sql

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

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 个答案:

答案 0 :(得分:1)

2条简单的规则让你做对了

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

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

二。 相信你的眼睛!

如果数据库告诉你“没有选择数据库” - 那么,它就是。表示您在前面的语句中选择了错误的数据库。检查拼写,数据库存在等 这很简单。你不需要特殊的知识 - 只是常识。

答案 1 :(得分:0)

拉里,你的sql失败了。它总是必不可少的调试原因 - 就像你今天遇到的那样 - 有一种方法可以打印出每个sql执行过程中出现的任何错误,如果出现任何错误,那么如果出现任何问题,你可以确保打印错误然后发生错误,以便您可以立即找到并解决问题

您的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);
?>

答案 2 :(得分:-1)

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

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

希望能解决您的问题

答案 3 :(得分:-2)

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

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