2017-06-01 6 views
-1

私はphpとsqlでかなり経験が不足しており、SQLステートメントへの挿入にPHP変数の問題があります。ログイン用のSQLステートメントのPHP変数

私はSQLのテーブルを持っている:

CREATE TABLE users (
    userID INT PRIMARY KEY, 
    username VARCHAR(256), 
    password VARCHAR(256) 
); 

これは、それがphpmyadminの中で行われたとして、私は、テーブルを作った方法ではありませんが、それはそれはPHPがあり、そうである

で正確にどのようにあります

$userUsername = $_POST["username"]; 
$userPassword = $_POST["password"]; 

$sqlinsert = "INSERT INTO users(username,password) VALUES ('$userUsername','$userPassword');"; 

$insertquery = mysqli_query($conn,$sqlinsert) 
       or die ("Problem with insert query"); 
+0

あなたのコードは、SQLインジェクションの脆弱性である、あなたはこれを修正する必要があります。 – Enstage

答えて

2

プライマリキー(userID)に自動インクリメントを割り当てる必要があります。 それとも、あなたがIDに自動インクリメントを持っているならば、

$sqlinsert = "INSERT INTO users(userID,username,password) 
VALUES ('','$userUsername','$userPassword')"; 

またはIDでない場合は、自動インクリメントでそれを埋める空白の最初のままに

$sqlinsert = "INSERT INTO users(userID, username, password) VALUES (1, '$userUsername', '$userPassword');"; 
+0

ありがとう、それは働いた!レッスンはaha –

+0

を受け取りました。この回答を受け入れるか、上矢印をクリックしてください。だから誰かが同じ問題を探しているなら、彼らは指導を受けることもできます。 –

0

のようにそれに値を渡す必要があります。

$sqlinsert = "INSERT INTO users(userID,username,password) 
    VALUES ('1','$userUsername','$userPassword')"; 

あなたの記事のコメントで既に述べたように、あなたのコードはSQLインジェクションに対して脆弱です。

PDO Prepare Statementを使用することができ、あまりにも必ずしもofcourseの

+0

APIを完全に変更する必要はなく、mysqli_ *(OPが使用している)は準備済みの文も提供しています。 – Qirel

関連する問題