这个问题在这里已有答案:
我创建了一个包含下拉列表和上传文件的表单 . 下拉列表值从数据库填充 . 此表单的操作文件是add.php文件,该文件更新数据库并在数据库中上载文件 . 我想从用户从下拉列表中选择的选项更新数据库,该选项具有选择名称“to_user”,并且对于数据库中的该行,文件将根据所选选项值上载 . 我在add.php文件中使用此SQL查询:
mysql_query(" UPDATE TABLE2 SET COL6=('$filename') WHERE COL1=$_POST['to_user'] ");
我收到了一个错误 . 我该怎么办?错误:第21行上的/Applications/XAMPP/xamppfiles/htdocs/add.php中的语法错误,意外的''(T_ENCAPSED_AND_WHITESPACE),期望标识符(T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)
index.php - webpage which has the drop down list and file uploading option
add.php- action file of the form created in index.php file
的index.php
<!DOCTYPE html>
<html>
<head>
<title>Sch </title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1”>
<link rel="stylesheet" href="https://www.w3schools.com/tags/tag_select.asp">
<link rel = "stylesheet" href="custom.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<style>
div.container {
margin: 20px 0 20px 0;
padding: 20px;
}
div.space {
margin: 2px 0 2px 0;
padding: 1px;
}
div.space1 {
margin: 2px 0 2px 0;
padding: 1px;
}
div.space2 {
margin: 2px 0 2px 0;
padding: 2px;
}
div.space3 {
margin: 2px 0 2px 0;
padding: 2px;
}
div.space4 {
margin: 2px 0 2px 0;
padding: 2px;
}
div.space5 {
margin: 10px 0 15px 0;
padding: 2px;
}
</style>
</head>
<body>
<div class="container">
<h2>Select the Radioactive source and upload the documents:</h2>
</div>
<form enctype="multipart/form-data" action="add.php" method="POST">
<div class="space">
<?php include('d2.php') ?>
<select name="to_user" class="form-control">
<option value="pick">Radioactive source</option>
<?php
$sql = mysqli_query($con, "SELECT DISTINCT COL1 FROM TABLE2");
$row = mysqli_num_rows($sql);
while ($row = mysqli_fetch_array($sql))
{
echo "<option value='". $row['COL1'] ."'>" .$row['COL1'] ."</option>" ;
}
?>
</select>
</div>
<div class="space1">
<p>
Upload NOC file :<br>
<input type="file" name="datafile1" size="40">
</p> </div>
<div class="space2">
<p>
Upload LT file :<br>
<input type="file" name="datafile2" size="40">
</p> </div>
<div class="space3">
<p>
Upload Import Noc file :<br>
<input type="file" name="datafile3" size="40">
</p> </div>
<div class="space4">
<p>
Upload Photo Inventory file :<br>
<input type="file" name="datafile4" size="40">
</p>
</div>
<div class="space5">
<input type="submit" value=Submit
</div>
</form>
<div class="background">
<div class="transbox">
</body>
<footer>done </footer> </html>
add.php
<?php include('index2.php') ?>
<?php
$file1=( $_FILES['datafile1']['name']);
$file_size1 = $_FILES['datafile1']['size'];
$file2=( $_FILES['datafile2']['name']);
$file_size2 = $_FILES['datafile2']['size'];
$file3=( $_FILES['datafile3']['name']);
$file_size3 = $_FILES['datafile3']['size'];
$file4=( $_FILES['datafile4']['name']);
$file_size4 = $_FILES['datafile4']['size'];
mysql_connect("localhost", "root", "") or die(mysql_error()) ;
mysql_select_db("CSV_DB") or die(mysql_error()) ;
if($file_size1 >0)
{
mysql_query("UPDATE Table2 SET COL6=('$file1') WHERE COL1=$_POST['to_user']")or die('Error, query failed');
}
if($file_size2 >0)
{
mysql_query("UPDATE Table2 SET COL7=('$file2') WHERE COL1=$_POST['to_user']")or die('Error, query failed');
}
if($file_size3 >0)
{
mysql_query("UPDATE Table2 SET COL8=('$file3') WHERE COL1=$_POST['to_user']")or die('Error, query failed');
}
if($file_size4 >0)
{
mysql_query("UPDATE Table2 SET COL9=('$file4') WHERE COL1=$_POST['to_user']")or die('Error, query failed');
}
echo "<br>File $file1 uploaded<br>";
echo "<br>File $file2 uploaded<br>";
echo "<br>File $file3 uploaded<br>";
echo "<br>File $file4 uploaded<br>";
?>
1 回答
尝试:
PHP给出了包括字符串内部数组的问题,就像添加$ filename一样 .
根据变量类型,您可能必须为查询添加引号: