2016-11-10 20 views
1

私はデータベースへの接続やデータの挿入に問題があります。私は必要な情報を収集するためにフォームを使用しています。そして、私は自分のデータベースに挿入しようとします。私は問題が何であるか分からないが、私は接続に問題があると思う。私は2つのファイルを試してこれを達成するために使用しています。どのようにPHPを使用してmysqlデータベースに挿入しますか?

addQuite.htmlファイル

<!DOCTYPE html> 
<html> 
<head> 
    <title>AddQuote</title> 
    <link href="styles.css" type="text/css" rel="stylesheet" /> 
</head> 

<body> 

<h2> Add a Quote <h2> 

    <form action="index.php" method="get"> 
     <div> 
      Quote:<br> 

      <textarea rows="6" cols="60" name="quote" id="quote"> 

      </textarea> 

      <br> 

      Author: <input type="text" name="author" id="author"/> <br> 

      <input class = "input2" type="submit" value="Save Quotation"/> 
     </div> 
    </form> 
    </body> 


    </html> 

そして、これは私が私のデータベースに接続し、挿入しようとしているところである私のindex.phpファイルである

<!DOCTYPE html> 
    <html> 
    <head> 
    <title>Quotes</title> 
    <link href="styles.css" type="text/css" rel="stylesheet" /> 
    </head> 

    <body> 


<h1> Quotes </h1> 

<form action="addQuote.html"> 
<input class="input1" type="submit" value="Add Quote"/> 
</form> 

<?php 
//connet to server 
$db = new PDO("mysql:host=server;dbname=quotes", "root" , ""); 

//check connections 
if($db===false){ 
    die("ERROR: Could not connect. "); 
} 

//get name and quote 
$name = $_GET['author']; 
$quote = $_GET['quote']; 

//attemp insert query execution 
$sql = "INSERT INTO quotations (name, quote, rating) VALUES 
('$name', '$quote', 0)"; 

?> 

</body> 


</html> 
+0

ローカルシステムでコードを実行すると、通常はホスト名を確認するのが「localhost」です。 –

+0

あなたの現在のコードはSQLインジェクションに脆弱です。これは、準備やエスケープによって起こらないことを確認する必要があります –

答えて

0

は例

次の顔をしています
<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "myDBPDO"; 

try { 
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
    // set the PDO error mode to exception 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sql = "INSERT INTO MyGuests (firstname, lastname, email) 
    VALUES ('John', 'Doe', '[email protected]')"; 
    // use exec() because no results are returned 
    $conn->exec($sql); 
    echo "New record created successfully"; 
    } 
catch(PDOException $e) 
    { 
    echo $sql . "<br>" . $e->getMessage(); 
    } 

$conn = null; 
?> 
0

クエリは実行されません。コードに "$ db-> exec($ sql);"を追加してください。

<?php 
//connet to server 
$db = new PDO("mysql:host=server;dbname=quotes", "root" , ""); 

//check connections 
if($db===false){ 
    die("ERROR: Could not connect. "); 
} 

//get name and quote 
$name = $_GET['author']; 
$quote = $_GET['quote']; 

//attemp insert query execution 
$sql = "INSERT INTO quotations (name, quote, rating) VALUES 
('$name', '$quote', 0)"; 
$db->exec($sql); 
?> 
関連する問題