저는 초보자입니다. 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'] '(ifet ($ _ POST [ 'salelist']))'를 사용하여 경고를 피할 수 있습니다. 그 코드는 데이터베이스 연결 아래에 삽입됩니다. 브라우저에 출력하기 전에 비즈니스 로직을 수행하십시오. – Rasclatt
셋째로, 이것을하지 마십시오. "select * from sales where name = $ salelist"', 그것은 안전하지 않습니다. 마지막으로, 그렇게한다면,'$ salelist' 주위에 작은 따옴표가 필요합니다. – Rasclatt
사용자가 제출 한 데이터를 삽입 할 때 바인드 매개 변수 기능을 사용하는 것이 가장 좋습니다. sales (id, name, panelnumber) 값 ('', $ salelist, $ panelnumber)''및''$ salelist ''에''* 'sales sales where name = $ panelnumber''), 당신은 SQL injection을 사용할 수 있습니다. – Rasclatt