2016-12-05 16 views
-3

私は変数を使ってmysqlテーブルに値を挿入しようとしていますが、変数を空変数として取ることができません。 ?私に応答できますPHPを使ってmysqlテーブルに変数を挿入する

<?php 
$conn=new mysqli("domain","user","password","database"); 
if($conn->connect_error) 
{ 
    die("Connection failed: " . $conn->connect_error); 
} 
$name ="test2"; 
$email="1234"; 
$password ="1234"; 
$sql="INSERT INTO android(name,email,password) values('$name','$email','$password')"; 

echo $sql; 
if ($conn->query($sql) === TRUE) { 
echo "New record created successfully"; 
} 
else { 
echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
?> 

:私はあなたがPHPのMySQLを学習するプロセスにまだあると信じ

Error: insert into android(name,email,password) values('','','') Duplicate entry '' for key 'PRIMARY'

+2

とあなたのDB接続とクエリ-・実行は次のとおりです。

あなたの適切なコードは次のようにすべきですか? – donald123

+0

'$ sql'変数 –

+0

とdbスキーマを印刷してみてください。 –

答えて

0

は..あなたへの私の提案は、あなたが現在、このチュートリアル(複数可)を停止することですmysqliやpdoを使って準備された文を覚えておき、ローカルマシンで練習していてもプレーンテキストでパスワードを保存しないでください。

PHPはあなたのハッシュとセキュリティを保護する驚くべき機能を持っていますパスワードは、

password_hash() and password_verify()mysqliのとあなたのコードは次のようになりますを用意し

<?php 
$servername = "localhost"; 
$username = "user"; 
$password = "password"; 
$hash = password_hash($password,PASSWORD_DEFAULT); 
$dbname = "database"; 

$name ="test2"; 
$email="1234"; 
$password ="1234"; 
$hash=password_hash($password,PASSWORD_DEFAULT); 


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

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

// prepare and bind 
$stmt = $conn->prepare("INSERT INTO android (name,email,password) VALUES (?, ?, ?)"); 
$stmt->bind_param("sss", $name, $email, $hash); 
$stmt->execute(); 

echo "New records created successfully"; 

$stmt->close(); 
$conn->close(); 
?> 

あなたのように、エラーをので、あなたがそれかどうかを確認する必要があり、uはあなたのテーブルの主キーを作られた電子メールの重複であります電子メールは挿入する前に存在しません。

<? 

$sql = $con->prepare("SELECT email from android WHERE email = ? LIMIT 1"); 
$sql->bind_param('s', $email); 
$sql->execute(); 

$sql->bind_result($email); 
$sql->store_result(); 
if ($sql->num_rows == 1) //row exists 
    { 
    if ($sql->fetch()) //contents of the row 
     { 

     echo $email . "already registered"; 
    } 
} else { 
    //email does not exist lets insert 

    // prepare and bind 
    $sql = $conn->prepare("INSERT INTO android (name,email,password) VALUES (?, ?, ?)"); 
    $sql->bind_param("sss", $name, $email, $password); 


    $sql->execute(); 

    echo "New records created successfully"; 

    $sql->close(); 
    $conn->close(); 

} 
?> 
関連する問題