2016-11-18 6 views
-1

私は現在学校でクラスに入っており、PHPを使用してMySQLデータベースとウェブサイトをリンクする必要があります。私はすでにMySQLでテーブルを作っていました。私の教授は私たちのウェブサイトにテーブル情報を表示するためにこのコードを送ってくれました。しかし、私はそれを実行すると、何も起こらないと私は十分なPHPが動作していない理由を知っていることを学んでいない。私は正しいホスト名、パスワード、ectを使用しました。しかし、それは動作しません、彼はビデオでチュートリアルをオンラインで行うとき、彼のために働く。PHPがMySQLを呼び出す

これは私が使用しているコードです。

<html> 
<head> 
<title>Query All Movies from Database</title> 
<body> 

<? 

@ $db = mysql_pconnect("localhost","username","password"); 

if (!$db) 
{ 
    echo "ERROR: Could not connect to database. Please try again later."; 
    exit; 
} 

mysql_select_db("database name"); 

$query = "select * from movie"; 

$result = mysql_query($query); 
$num_results = mysql_num_rows($result); 

echo "<p>Number of movies found: ".$num_results."</p>"; 

for ($i=0; $i < $num_results; $i++) 
{ 
$row = mysql_fetch_array($result); 
echo "<p>"; 
echo htmlspecialchars(stripslashes($row["movieid"])); 
echo "<br>"; 
echo htmlspecialchars(stripslashes($row["title"])); 
echo "<br>"; 
//echo htmlspecialchars(stripslashes($row["directorid"])); 
//echo "<br>"; 
echo htmlspecialchars(stripslashes($row["year"])); 
echo "<br>"; 
echo htmlspecialchars(stripslashes($row["genre"])); 
echo "<br>"; 
echo htmlspecialchars(stripslashes($row["runtime"])); 
echo "<br>"; 
echo htmlspecialchars(stripslashes($row["plotdescription"])); 
echo "<br>"; 
echo htmlspecialchars(stripslashes($row["comments"])); 
echo "<br>"; 
echo "</p>"; 

} 

?> 

</body> 
</html> 

これは私が得ている出力です。 画面に直接。

Number of movies found: ".$num_results." 
"; for ($i=0; $i < $num_results; $i++) { $row = mysql_fetch_array($result); echo " 
"; echo htmlspecialchars(stripslashes($row["movieid"])); echo " 
"; echo htmlspecialchars(stripslashes($row["title"])); echo " 
"; //echo htmlspecialchars(stripslashes($row["directorid"])); //echo " 
"; echo htmlspecialchars(stripslashes($row["year"])); echo " 
"; echo htmlspecialchars(stripslashes($row["genre"])); echo " 
"; echo htmlspecialchars(stripslashes($row["runtime"])); echo " 
"; echo htmlspecialchars(stripslashes($row["plotdescription"])); echo " 
"; echo htmlspecialchars(stripslashes($row["comments"])); echo " 
"; echo " 

"; } ?> 

私は多くの研究を行い、リンクを読んでいますが、ここでは動作コードです!教えてくれてありがとう!このサイトはとても素晴らしいです!あなたは素晴らしいです!

<?php 
$servername = "localhost"; 
$username = "ursername"; 
$password = "password"; 
$dbname = "database name"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT movieid, title, directorid, year, genre, runtime, plotdescription, comments FROM movie"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "Movie ID: " . $row["movieid"]. "<br>Title: " . $row["title"]. "<br>Director ID: " . $row["directorid"]. "<br>Year: " . $row["year"]. "<br>Genre: " . $row["genre"]. "<br>Run Time: " . $row["runtime"]. "<br>Plot Description: " . $row["plotdescription"]. "<br>Comments: " . $row["comments"]." <br><br>"; 
    } 
} else { 
    echo "0 results"; 
} 
$conn->close(); 
?> 
+1

教授に質問してみませんか?彼は私よりもうまく説明するべきです。 –

+5

初心者の方には、完全な完全なPHPタグを使用し、@を削除すると、あなたに役立つかもしれないエラーが抑制されます..別のメモで..先生にmysqlI教えてください。<<最後かPDOメソッド –

+0

Iテストコードを実行して自分のデータベースに接続できることを確認し、すべてのユーザー情報が正しいように機能しました。しかし、このコードを実行すると、接続されているかどうかはわかりません。私はちょうどスクリーン上のコードの一部を吐き出す。 –

答えて

1

このコードは使用しないでください。最近、このスニペットは安全ではありません。 PDOやMySQLIのような新しい接続方法の1つを使用する必要があります。私は後者を好む、あなたのものを設定するPHPのサイトでドキュメントを使用してみてください。

http://php.net/manual/en/function.mysqli-connect.php

私はあなたの先生が、この方法を使用していることを想像することができた唯一の理由は、どちらかである彼らは、任意のより良いか、彼らはPHPの非常に古いバージョンを使っているかわかりません。

旧式のMySQL関数は手続き型であり、OOP(オブジェクト指向プログラミング)で書かれたときには手作業でエスケープされるため、うんざりします。新しいmysqli_関数は手続き型とOOPの両方で機能し、プリペアドステートメントをサポートします。プリペアドステートメントは、SQLインジェクションやその他の脆弱性が少なくなるように値をパラメータ化するため、より安全です。プリペアドステートメントは実行時ではなく準備時にのみ解析する必要があるため、スピードの向上も得られます。同じパラメータをたくさん使用すると、余分な速度が得られます!

PDOはプリペアドステートメントもサポートしていますが、抽象レイヤーを導入しているため、初心者の方が少し複雑です(基本的には未処理SQLステートメントではなくPHPでクエリーを作成します)。私が最初に始めたとき、これは私のためにオフになっていました。あなたがPDOをあまりにも深く見る前に、私はMySQLiのものをうまく利用しようとします。

+0

私はMySQLIが何であるか分かりません。 –

+0

MySQLiはPHPに組み込まれています。これは、データベースに接続するための新しい方法です。使用している関数は廃止されました(古いものですが、コードベースに残っているため、古いサイトは中断しません)。ここでは、すべてをあなたを歩くMySQLiの良いガイドです! http://php.net/manual/en/mysqli.quickstart.php –

1

ここには根本的な問題がたくさんありますが、エコー文字列を集中させて間違っているために出力が間違っているようです。 PHPでは変数を二重引用符で囲むことができ、それでも正しく解析されます。と私が言ったように、あなたが投稿したコードは、それを出力することはできません。

最初のエコーラインをこれに変更して何が起こるかを確認してください。

echo "<p>Number of movies found: $num_results</p>"; 

私はいつもは、いわゆる教授からを学ぶよりも、それは自分で何かを教えるためにはるかに良いです、と言います。彼はあなたに償却されたコードを与えました。これは現在PHP 7で削除されています。あなたのコードに何が問題なのか分かりませんし、安全で現代的なWeb開発のためにあなたを完全に間違った方向に向けることになりました。この教授には誰もPHPを教えるビジネスはありません。

+0

それでも、同じ奇妙なコードが吐き出されています。 :(私は私のウェブページにそのデータを表示したいだけです。 –

関連する問題