2017-01-29 5 views
-1

私はちょうどmysqlの注射を避けるために私のデータベースにこの新しい挿入スクリプトについて学んだが、何らかの理由でそれが動作しない...私のグラフの名前はメッセージです。私は、データベースに来てほしいテキスト...関数スクリプトを挿入する

ここでは、私の新しいコードです:

<?php 
$meddelanden = $_POST['message']; 
$namn = $_SESSION['user']; 
include ("connect.php"); 
$sql = $con->prepare('INSERT INTO messages (message,namn) VALUES (?,?)'); 
$sql->bind_param("ss",$meddelanden,$namn); 
$sql->execute(); 
$sql->close(); 
$con->close(); 
?> 

<form action = "meddelanden.php" id = "fromen2" method = "post"> 
    <input type="text" name="message" id = "type" autocomplete="off" 
      placeholder="type your chat message"> 
    <input type="submit" name="submit" value="Send"> 
</form> 

イムが間違っているのかを説明しますが、ちょうど私が代わりに何をすべきかと言えば、私は答えを承認文句を言わないでください!助けてくれてありがとう!

+1

'$ sql-> bind_param(" si "、$ meddelanden);から' i'を削除してください –

+0

代わりにどうしたらいいですか?原因のsi =文字列の権利ですか? –

+0

それぞれの '?'に対して1つのデータ型を定義する必要があります – RiggsFolly

答えて

1

sisに置き換える必要があります。これは、1つの文字列のみをバインドしていて整数でないためです($meddelandenが整数でない場合)。これを代わりに使用してください

$sql->bind_param("s",$meddelanden); 
+1

それは私が感謝のようなコメントは避けなければならないと言いますが、おかげです。 –

+1

あなたはその場合に答えを受け入れることができます。 :) @unknownduck –

+1

ちょうど私がやったのは、私はあまりにも低得点を言うupvote thoを言う:/ –

0

Sは文字列、Iは整数です。 SIを置くことによって、2つの変数が渡されているということになります。

関連する問題