2017-12-28 18 views
0

データPHP MySQLを挿入しようとしているが、私は取得エラーは次のとおりです。ユーザー '@' localhost 'のアクセスが拒否されました。私は私のデータベースにデータを挿入しようとしている

奇妙な: アクセスが「@ 'localhost」のユーザーのために拒否された(NOパスワードを使用して)私のデータベースからデータを選択することができ、またこのデータをフォームフィールドに表示することです。

http://sayhey.nl/mealapp/add-ingredients.php

しかし、私はこのフォーム経由で新しいデータを挿入しようとすると、それはエラー「アクセスが拒否された」与えます。何のユーザ名またはパスワードが設定されていないように見えますが、実際に私はこれをしました:

//Connect to database 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$database = "databasename"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $database); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

そして、これはコードの残りの部分である:

<?php 
//Connect 
include 'connect.php'; 
$ingredient_sql = "SELECT id, name FROM ingredient_cat"; 
$ingredient_cat_result = $conn->query($ingredient_sql); 
?> 
<div id="wrapper"> 
    <form method = "post" action = "<?php $_PHP_SELF ?>"> 
     <input name="ingredient_name" type="text" id="ingredient-name" /> 
     <select name="ingredient_cat" id="ingredient-cat"> 
      <?php 
      while($row = $ingredient_cat_result->fetch_assoc()) { 
       echo '<option value="'.$row["id"].'">'.$row["name"].'</option>';     
      } 
      ?> 
     </select> 
     <select name="ingredient_unit" id="ingredient-unit"> 
      <option value="stuks">stuks</option> 
      <option value="gram">gram</option> 
      <option value="liter">liter</option> 
     </select> 
     <input type="submit" name="add" value="Add ingredient" /> 
    </form> 
</div> 
<?php 
if(isset($_POST['add'])) { 
    $ingredient_name = $_POST['ingredient_name']; 
    $ingredient_cat = $_POST['ingredient_cat']; 
    $ingredient_unit = $_POST['ingredient_unit']; 
    mysql_query("INSERT INTO ingredient(name, unit, cat) VALUES('".$ingredient_name."', '".$ingredient_unit."', ".$ingredient_cat.")")or die(mysql_error()); 
} 
?> 

誰かがこの問題を解決する方法を知っていますか?

+0

あなたのコードの使用パスワードでmysql_query(を交換し、あなたのエラーメッセージは、あなたがしなかったことを述べています。この問題を再現するための正しいコードを投稿しましたか? – Federkun

+0

どのようにクエリを挿入してクエリを挿入しますか?それも投稿できますか? – rahulsm

+0

はい、失敗した実際のコードを見ていただければ幸いです。 –

答えて

2

あなたはprocedural wayPDOを混合している...

$conn->query(

+0

これは、ありがとうございます! – Tamara

+0

偉大なので、答えを受け入れ、SQLインジェクションを防ぐためにPDOの準備声明を使用してください:https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php/60496#60496 – ino

関連する問題