私は初心者です。私はPHPの挿入クエリを使用して自分のデータベーステーブルに値を挿入したいのですが、データを挿入する際にエラーが発生しています。データベーステーブルへの挿入、新しい値が、ここで私はそれを解決するために私のコードの助けがあるときに、データベーステーブルの存在価値を更新するために、私のコードは以下の通りです:データベーステーブルに値を挿入して更新する方法
<?php
include 'dbconfig.php';
?>
<html>
<head>
<title>Sales Panel App</title>
</head>
<body>
<form method="POST" name="myForm" action="<?php $_PHP_SELF ?>">
<table border="1">
<tr>
<td>Sales Person List</td>
<td>
<?php
$sql="select name,id from sales order by name";
echo "<select name = 'salelist' value=''>Sales Person Name</option>";
echo "<option value = 'Select Sales Person' selected>Select Sales Person</option>";
{
foreach ($conn->query($sql) as $row){
echo "<option value=$row[id]>$row[name]</option>";
}
echo "</select>";
}
echo "<br>";
?>
</td>
</tr>
<tr>
<td>No of Panels</td>
<td><input type="text" name="panelnumber" size="1"></td>
</tr>
</table>
<p><input type="submit" value="Submit" name="submit" id="submitdata"></p>
</form>
<?php
$salelist = $_POST['salelist'];
$panelnumber = $_POST['panelnumber'];
$sql2 = "select * from sales where name = $salelist";
$result = mysqli_query($sql2);
if ($row = mysqli_fetch_array($result)) {
$oldvalue = $panelnumber;
$newvalue = $oldvalue + $panelnumber;
$query = 'update sales where name = $panelnumber';
}
else {
$qry = "insert into sales (id, name, panelnumber) values ('', $salelist, $panelnumber)";
}
?>
</body>
</html>
カップル一般的なポイントは、まずその '$ _POST [「salelist」]をご確認ください。 'は' if(isset($ _ POST ['salelist'])) 'を使って設定されているので、このように警告を避けることができます。そのコードはデータベース接続の下に挿入されます。ブラウザに出力する前にビジネスロジックを実行してください。 – Rasclatt
第3に、select * from sales where name = $ salelist "'、これは安全ではありません。最後に、 '$ salelist'を一重引用符で囲む必要があります。 – Rasclatt
ユーザーが提出したデータを挿入するときに、バインドパラメータ関数を使用することをお勧めします。 sales(id、name、panelnumber)の値( ''、$ salelist、$ panelnumber)に '' $ * salelist ''と' 'セールスを挿入し、 'sales sales where name = $ panelnumber'')、SQLインジェクションが可能です。 – Rasclatt