Mysql Connect错误:根本没有显示任何内容

时间:2012-11-06 13:39:28

标签: php mysql

我目前正在使用mysql_connect(),即使不鼓励使用它。我的网络服务不支持PDO。我目前将我的代码格式化为PDO,但现在我被迫将其更改为mysяl_connect()。现在这些更改后,我收到页面错误,没有任何显示。我正在包含一个database_connect.php正在使用另一个页面而不是我的改编代码。我的代码中导致此错误的问题是什么?这是我的PAGE

代码

include ('./snippets/db_connect.php');

      $query = ("SELECT  class_name, class_caption, class_credit_hours, class_description
                 FROM class                          
                 ");
      $query->execute();

     if ($query->execute()){

    $totalhours = 0;

    while ($row = mysql_fetch_assoc( $query )){  
        print "<b>" . $row['class_name'] . "</b><br>";
        print $row['class_caption'] . "<br>";
        print $row['class_description'] . "<br>";
        print $row ['class_credit_hours'] . "hrs. <br>";

        print "------------------------------<br />";
        $totalhours += $row['class_credit_hours']; 
    }

    print "<p>Total hours for Major: " . $totalhours . ".</p>";

    "<div> </div>"

4 个答案:

答案 0 :(得分:1)

$query是一个字符串,因此没有execute方法。你永远不会打电话给mysql_query($query)。所以没有结果集。

$sql = "SELECT  class_name, class_caption, class_credit_hours, class_description FROM class"
$result = mysql_query($sql);

if($result) {
  while ($row = mysql_fetch_assoc($result)){
     /// do stuff
  }
}

此外,如果您的主机不支持PDO,您应该切换,即使您不打算使用它。他们没有理由不在此时支持它,它在php 5.1中是标准的,如果不是当前稳定的5.3,你的主机至少应该有php 5.2.17。

现在,如果你知道PDO,你可能想尝试Mysqli而不是ext/mysql。它更像是PDO并支持准备好的声明,而不支持。你的主人应该至少拥有它。如果他们不重视改变主机提供商。

答案 1 :(得分:0)

你应该用这个:

$query = "SELECT  class_name, class_caption, class_credit_hours, class_description FROM class";
$query = mysql_query($query);
if (!$query) {
    die("There is an error: " . mysql_error());
}
//continue your code

答案 2 :(得分:0)

正确的代码应该是:

include ('./snippets/db_connect.php');

      $query = ("SELECT  class_name, class_caption, class_credit_hours, class_description
                 FROM class                          
                 ");
      //execute query
      $result = mysql_query($query);

     if ($result){

    $totalhours = 0;

    while ($row = mysql_fetch_assoc( $result )){  
        print "<b>" . $row['class_name'] . "</b><br>";
        print $row['class_caption'] . "<br>";
        print $row['class_description'] . "<br>";
        print $row ['class_credit_hours'] . "hrs. <br>";

        print "------------------------------<br />";
        $totalhours += $row['class_credit_hours']; 
    }

    print "<p>Total hours for Major: " . $totalhours . ".</p>";

    "<div> </div>"

答案 3 :(得分:0)

我真的不明白你是如何生成代码的,但我觉得你很困惑。看起来你混合了几种不同的方法。您还调用了两次execute()。如果你想使用PDO,我想你正试图拍摄这样的东西:

$query = "SELECT  class_name, class_caption, class_credit_hours, class_description FROM class";
$stmt = $dbh->prepare($query);
if ($stmt->execute()) {
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        // Do you stuff with your $row
    }
}

如果您正在尝试使用mysql_ *(折旧和未定义),我认为您正在尝试执行以下操作:

$query = "SELECT  class_name, class_caption, class_credit_hours, class_description FROM class";
$run = mysql_query($query);
if ($run) {
    while ($row = mysql_fetch_array(run)){  
        // Do your stuff with your $row
    }
}