2016-08-24 21 views
-2

私はここに新しいです。私は本当に必死になって、少なくとも3日間コードを修正しようとしており、全く動作しません。 私はローカルサーバーを持っていて、動作します(私のMacBookでMampを使用します)。私の "hexameter"データベースで "forms"という小さなテーブルを編集しました。初心者のPHPコードでは動作しません

Here`s私のコード:

connection.php動作しない

<?php 
$servername = ""; 
$username = ""; 
$password = ""; 

$conn = new mysqli($servername, $username, $password); 

if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
echo "Connected successfully"; 
?> 

接続!

入力:

<!DOCTYPE html> 
<html> 
<body> 

<form action="http://localhost:8888/index.php" method="GET"> 
Hexameter: <input type="text" name="Hexameter"><br> 
<input type="submit" name"Eingabe"> 
</form> 

</body> 
</html> 

のindex.php:

<!DOCTYPE html PUBLIC> 
<html > 
<head> 
    <title>Search results</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <link rel="stylesheet" type="text/css" href="style.css"/> 
</head> 
<body> 
<?php 

$query = $_GET['Hexameter']; 

$query = htmlspecialchars($query); 

$query = mysql_real_escape_string($query); 

$raw_results = mysql_query("SELECT * FROM forms 
     WHERE `text` LIKE '%".$query."%')" or die(mysql_error()); 


if(mysql_num_rows($raw_results) > 0){ 

    while($results = mysql_fetch_array($raw_results)){ 

      echo "<p><h3>".$results['title']."</h3>".$results['text']."    

</p>"; 
    } 
} else{ 
    echo "No results"; 
} 

} 

?> 
</body> 
</html> 

私はindex.phpに常に得るが、表示されたものは何もありません。 誰かが助けることができたら本当にうれしいでしょう!

+0

これはすべてについてですか? –

+4

'mysql_real_escape_string'は必要ありません。あなたは 'mysqli'で接続を開きました。あなたはAPIを混合しています。 PDOに切り替えて、mysql_とmysqli_を混同しないようにしてください。 – developerwjk

+0

@developerwjk - 私は文字通りそれを入力しようとしていました。あなたは私の前にそれを持っています。 –

答えて

0

mysqliを使用する場合、クエリに接続文字列を追加する必要があります。あなたのケースでは

$raw_results = mysqli_query($conn, "SELECT * FROM forms 
    WHERE `text` LIKE '%".$query."%'") or die(mysqli_error()); 

はそれを試してみてください。

0

コメント者の中には、mysqliを使用してデータベースに接続してから、mysql関数を呼び出すことが記載されています。さらに悪いことに、index.phpのどこにでも参照されるデータベース接続はありません。 mysql_queryコールの$link_identifierパラメータが省略されました。

index.phpの通話をmysqli通話に切り替えて、有効な$connを使用していることを確認してください。

0

データベースのクエリを実行する前に、最初にconnection.phpが必要です。

require "connection.php"; 

その後、接続がmysqli_query機能で必要とされているので、パラメータとして$connを追加します:

index.phpで、この行を追加します
$raw_results = mysqli_query($conn, "SELECT * FROM forms 
WHERE `text` LIKE '%".$query."%')" or die(mysqli_error()); 

は、私はそれがあなたの問題を解決すると思います。

関連する問題