내 변수 sqlConditions는 사용자가 해당 필드에 텍스트를 입력 할 때 추가한다고 가정합니다. 나는 이것을 체크하기 위해 "if (isset ($ _ POST [ 'example']))"라고 쓰지만, 이것은 각 변수의 추가를 멈추는 것처럼 보이지 않는다.mysql/php 스크립트에서 구문이 무시됩니다?
예를 들어 사용자 만 "LASTNAME"필드에 텍스트를 삽입하는 경우 $ 쿼리 변수를 반환해야는 :
UPDATE students SET lastname = whateveruserputin
그러나, 그것은 다음과 같습니다
UPDATE students SET lastname = test , firstname = , major = , gpa =
어떻게 이걸 고쳐 줘!? 나는이 코드가 작동하도록하고 싶다. 미리 감사드립니다.
코드 :
//connect to server
if(isset($_POST['submit']))
{
$id=$_POST['id'];
$lastname=$_POST['lastname'];
$firstname=$_POST['firstname'];
$color=$_POST['color'];
$number=$_POST['number'];
//need id to be filled and need at least one other content type to change
if(empty($id) || empty($lastname) and empty($firstname) and empty($color) and empty($number))
{
echo "<font color='red'>Invalid Submission. You did not enter an ID or did not input an additional form element. </font><br/>";
}
else // if all the fields are filled (not empty)
{
$sqlConditions = array();
if(isset($_POST['lastname'])){
$lastName = filter_var($_POST['lastname'], FILTER_SANITIZE_STRING);
$sqlConditions[] = 'lastname = ' . $lastName;
} else {
$lastName = '';
}
if(isset($_POST['firstname'])){
$firstName = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING);
$sqlConditions[] = 'firstname = ' . $firstName;
} else {
$firstName = '';
}
if(isset($_POST['color'])){
$color = filter_var($_POST['color'], FILTER_SANITIZE_STRING);
$sqlConditions[] = 'color = ' . $color;
} else {
$color = '';
}
if(isset($_POST['number'])){
$number = filter_var($_POST['number'], FILTER_SANITIZE_STRING);
$sqlConditions[] = 'number = ' . $number;
} else {
$number= '';
}
print $sqlConditions;
$query = 'UPDATE students SET ' . join (' , ', $sqlConditions);
print $query;
insert data to database
//$query = mysql_query("UPDATE students SET lastname = '$lastname', firstname = '$firstname', color = '$color', number = '$number'
//WHERE id = '$id'");
//if (!query)
//{
//die('Error: ' . mysql_error());
//}
// Close connection to the database
mysql_close($con);
}
}
... 나를 되 찾는 ... – djdy
변수는 * 설정할 수 있지만 아직 빈 문자열을 포함 할 수 있습니다. – webbiedave