0

mysql_connect()使用はお勧めしませんが、現在作業中です。私のWebサービスはをサポートしていませんPDO。現在、コードをにフォーマットしていましPDOたが、今はに変更する必要がありmysяl_connect()ます。これらの変更後、ページエラーが発生し、何も表示されません。database_connect.php適応したコードではなく、別のページで動作するを含めています。このエラーの原因となっているコードの問題は何ですか?これが私のページです

コード

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

4 に答える 4

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に似ており、準備されたステートメントとそうでないものをサポートしています。あなたのホストは少なくともそれを持っているべきです。そうでない場合は、ホスティングプロバイダーの変更に重点を置きます。

于 2012-11-06T13:42:02.997 に答える
0

そのコードをどのように生成したかはよくわかりませんが、混乱していると思います。いくつかの異なる方法を混ぜ合わせたようです。また、execute() を 2 回呼び出しています。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
    }
}
于 2012-11-06T13:48:25.637 に答える
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
于 2012-11-06T13:44:29.097 に答える
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>"
于 2012-11-06T13:44:44.033 に答える