2017-04-04 21 views
-2

MySqlとPHPで新しいImとCRUDを作成しようとしましたが、いつも "studenti"というテーブルにデータを挿入しようとしました。 mysqli_select_db($ con、 "d_base")でデータベースを選択しました。私はそのここに私は "データベースが選択されていません"というエラーが選択されていてもエラーが発生しました

を働いていないことはコードである理由を理解しないcuzを

誰かが私を助けてください。

$id = $_POST['ID']; 
$nota = $_POST['Nota']; 
$emri = $_POST['Emri']; 
$mbiemri = $_POST['Mbiemri']; 



$servername = "localhost"; 
$dbname = "d_base"; 

// 1.Create connection 
$con = mysqli_connect("localhost","d_base"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    if (!mysqli_query($con,"INSERT INTO studenti (id, nota, emri, mbiemri) VALUES ('$id', '$nota','$emri','$mbiemri')")) 
    { 
    echo("Error description: " . mysqli_error($con)); 
    } 

// Perform queries 
mysqli_select_db($con, "d_base"); 
mysqli_query($con,"INSERT INTO studenti (id, nota, emri, mbiemri) VALUES ('$id', '$nota','$emri','$mbiemri')"); 
mysqli_close($con); 
+0

あなたはそれを選択した後* *あなたの最初のクエリ –

+2

あなたのコードは、SQLインジェクション攻撃に対して脆弱です。 [mysqli](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)または[PDO](http://php.net/manual/en/pdo.prepared- statements.php)は、[this post](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)で説明されているように準備された文です。 –

+0

接続後に接続後に選択する必要があります。 – clearshot66

答えて

0

する前にすべてのことあなたはbegginerまっすぐPDOに行くか、プリペアドステートメントのより安全でmysqliを使用している場合。

ここでは、あなたのphpとhtmlフォームがどのように見えるか、動作するかの例を示します。

まず、送信ボタンが押された場合は、読み込まれた値がフォーム$_POSTの変数になっているかどうかを確認する必要があります。

2番目のことは、関数mysqli_real_escape_string()を使って、あなたのmysqlに注入をエスケープする必要があることです。

その後、クエリを挿入してエラーをチェックしてください。エラーがない場合は、クエリが正常に挿入されます。

PHPコード

<?php 

// set error report ; 1 = on | 0 = off 
error_reporting(1); 

$db_host = "localhost"; // host 
$db_user = "root";  // database username 
$db_pass = "";   // database password 
$db_name = "d_base"; // database name 

// 1.Create connection 
$con = mysqli_connect($db_host, $db_user, $db_pass, $db_name); 

// Check connection 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

// if form is submited 
if (isset($_POST['submit'])) 
{ 
    // escape post variables 
    $id = mysqli_real_escape_string($con, $_POST['ID']); 
    $nota = mysqli_real_escape_string($con, $_POST['Nota']); 
    $emri = mysqli_real_escape_string($con, $_POST['Emri']); 
    $mbiemri = mysqli_real_escape_string($con, $_POST['Mbiemri']); 

    // make query 
    $query = mysqli_query($con, "INSERT INTO studenti (id, nota, emri, mbiemri VALUES ('$id', '$nota', '$emri', '$mbiemri')") 

    // check for query 
    if (!$query) 
    { 
     echo "Error description: " . mysqli_error($con); 
    } 
    else 
    { 
     echo "Query inserted."; 
    } 

    // close connenction 
    mysqli_close($con); 
} 


?> 

<form action="" method="post"> 
    <input type="text" name="ID" placeholder="Id"><br /> 
    <input type="text" name="Nota" placeholder="Nota"><br /> 
    <input type="text" name="Emri" placeholder="Emri"><br /> 
    <input type="text" name="Mbiemri" placeholder="Mbiemri"><br /> 
    <input type="submit" name="submit" value="Submit form"> 
</form> 
+0

はi'vはこれを試し 私はMySQLとPHPで数日前に開始し、説明のためのuに感謝しますが、今、私は別のエラー は、MySQLへの接続に失敗しました。取得:アクセスは、ユーザー「d_base」を否定しました@ 'localhost'(パスワード:YESを使用) – Bishudkishu

+0

@Bishudおそらく、データベースへの接続に間違ったデータを使用しています。 phpmyadminの**ユーザアカウント**タブでデータベースのユーザとパスワードを確認できます。この画像はhttp://image.prntscr.com/image/361edc80d14b4194aa35f91919375508.jpeg – Mario

+0

で見ることができますユーザーアカウントを開くと – Bishudkishu

関連する問題