2017-01-08 12 views
-1

私のPHPスクリプトでは、データベース(ハッシュ、サラ)にデータを保存します。 salaが存在する場合はハッシュを更新したい(同じ行にハッシュを更新する)。行がある場合は更新

スクリプトの変更方法は?

$sala = $_POST['sala']; 

$servername = ""; 
$username = ""; 
$password = ""; 
$dbname = ""; 

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

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

$sql = "INSERT INTO instructions (hash, sala) 
VALUES ('$newfilename', '$sala')"; 

if ($conn->query($sql) === TRUE) { 
    echo "Dane dodano prawidłowo"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
+2

関連するコードを質問にコピーしました。人々が外部のリソースを訪問してコードを取得することはさらに困難であり、さらに、**そのリンクが壊れた場合(*の場合ではない場合)、この質問は将来の訪問者にとって価値がないことを理解してください。 –

+0

'$ newfilename'はどこに/どのように定義されていますか?ファイル関連のようです。 –

+0

あなたのコードは[SQL Injection attacks](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)に対して広く公開されています。 –

答えて

0

あなたが例えば、キーがすでに存在する場合は値を更新するINSERT ... ON DUPLICATE KEY構文を使用することができます。:

INSERT INTO instructions (hash, sala) VALUES("A", "B") ON DUPLICATE KEY UPDATE  
hash = "C"; 

Hereはドキュメントです。代わりに

0

使用このクエリを:

$sql = "INSERT INTO instructions (hash, sala) 
VALUES ('$newfilename', '$sala') 
ON DUPLICATE KEY UPDATE hash='$newfilename'"; 

また、あなたは、列salaUNIQUE KEYを作成する必要があります。 あなたが以前に言われたように、SQLインジェクション攻撃について忘れないでください。

関連する問題