can';t通过PHP会话更新MySQL表

can';t通过PHP会话更新MySQL表,php,mysql,session,Php,Mysql,Session,我无法通过从PHP会话获取的值更新MySQL表。我测试了PHP会话得到的值是否正常,我还发现代码中的$sql\u query1中存在问题,但我无法修复它 代码如下: MySQL模式↓ CREATE TABLE `test` ( `class` int(50) DEFAULT NULL , `class_group` int(50) DEFAULT NULL, `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, `add

我无法通过从PHP会话获取的值更新MySQL表。我测试了PHP会话得到的值是否正常,我还发现代码中的
$sql\u query1
中存在问题,但我无法修复它

代码如下:

MySQL模式↓

CREATE TABLE `test` (
  `class` int(50) DEFAULT NULL ,
  `class_group` int(50) DEFAULT NULL,
  `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `addr` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `seq` int(50) NOT NULL,
  `survey` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `survey_status` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `survey_date` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `test` (`class`, `class_group`, `name`, `addr`, `seq`, `survey`, `survey_status`, `survey_date`) VALUES
(1, 0, 'Michael  ', 'USA', 10, '', '', '0000-00-00'),
(1, 0, 'Jordan  ', 'CAN', 20, '', '', '0000-00-00');

ALTER TABLE `test`
  ADD PRIMARY KEY (`seq`);
<?php
session_start();
?>

<!DOCTYPE html>
<html>
<body>

  <h2 align="center">Update_System</h2>

<form action="2_update.php" method="get">
  <fieldset>
  <legend><h2>System</h2></legend><br/>
  seq: <input type="text" name="seq"><br/>
  survey: <input type="text" name="survey"></br>
  survey_status: <input type="text" name="survey_status"><br/>
  survey_date: <input type="text" name="survey_date"><br/>
  </fieldset>
  <br>
  <input type="submit" name="submit" value="submit">
</form>
<br>
<form action="1_test_preview.php" method="POST">
<input type="submit" name="submit_preview" value="preview list">
</form>

</body>
</html>
<!DOCTYPE html>
<html>
<body>
<h2 align="center">Result</h2>

<?php
if(isset($_POST['submit_preview'])){

$conn=mysql_connect("localhost","root","");
if (!$conn){die ("can not connect" . mysql_error());}
mysql_select_db("fs_change",$conn);
mysql_query("SET NAMES 'UTF8'");
mysql_query("set character set 'utf8'");

//set db connection
$sql_query1="select * from test";
$sql_nrow="select count(*) from test";
$result=mysql_query($sql_query1, $conn); 
$row_result=mysql_fetch_assoc($result); 
}
?>
<form id="form1" name="form1">
<table border="1" align="center">
<tr>
<td>class</td>
<td>class_group</td>
<td>name</td>
<td>addr</td>
<td>seq</td>
<td>survey</td>
<td>survey_status</td>
<td>survey_date</td>
</tr>

<?php do { ?>

<tr>
<td><?php echo $row_result['class']; ?></td>
<td><?php echo $row_result['class_group']; ?></td>
<td><?php echo $row_result['name']; ?></td>
<td><?php echo $row_result['addr']; ?></td>
<td><?php echo $row_result['seq']; ?></td>
<td><?php echo $row_result['survey']; ?></td>
<td><?php echo $row_result['survey_status']; ?></td>
<td><?php echo $row_result['survey_date']; ?></td>

<?php } while ($row_result = mysql_fetch_assoc($result));?>
<tr>

</table>
</form> 

<?php
mysql_free_result($result); 
?>
</body>
</html>
<?php
//get the data from session
session_start();
if(isset($_GET['seq'])){$_SESSION['seq']=$_GET['seq'];}
if(isset($_GET['survey'])){$_SESSION['survey']=$_GET['survey'];}
if(isset($_GET['survey_status'])){$_SESSION['survey_status']=$_GET['survey_status'];}
if(isset($_GET['survey_date'])){$_SESSION['survey_date']=$_GET['survey_date'];}



//set variables
    $seq = $_SESSION['seq'];
    $survey = $_SESSION['survey'];
    $survey_status = $_SESSION['survey_status'];
    $survey_date = $_SESSION['survey_date'];

//set db connection  
if(isset($_GET['submit'])){

$conn=mysql_connect("localhost","root","");
if (!$conn){die ("can not connect" . mysql_error());}
mysql_select_db("fs_change",$conn);
mysql_query("SET NAMES 'UTF8'");
mysql_query("set character set 'utf8'");

//set sql query
$sql_query1="UPDATE fs SET survey = $survey, survey_status = $survey_status, survey_date = $survey_date WHERE seq = $seq";
mysql_query($sql_query1, $conn);
mysql_close($conn);
} 
?>

<!DOCTYPE html>
<html>
  <body>
    test sql_query1:
    <?php 
    if ($sql_query1 === TRUE) {
    echo 'Updated Successfully'
    ;}
    else {echo "Update Failed";}
    ?> <br>
    seq:<?php echo $seq?><br>
    survey:<?php echo $survey?><br>
    survey_state:<?php echo $survey_status?><br>
    survey_date:<?php echo $survey_date?><br>
    <input type = "button" name = "return" value = "back" onclick= "history.back()"> &nbsp;
    </form>
  </body>
</html>
index.php↓

CREATE TABLE `test` (
  `class` int(50) DEFAULT NULL ,
  `class_group` int(50) DEFAULT NULL,
  `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `addr` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `seq` int(50) NOT NULL,
  `survey` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `survey_status` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `survey_date` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `test` (`class`, `class_group`, `name`, `addr`, `seq`, `survey`, `survey_status`, `survey_date`) VALUES
(1, 0, 'Michael  ', 'USA', 10, '', '', '0000-00-00'),
(1, 0, 'Jordan  ', 'CAN', 20, '', '', '0000-00-00');

ALTER TABLE `test`
  ADD PRIMARY KEY (`seq`);
<?php
session_start();
?>

<!DOCTYPE html>
<html>
<body>

  <h2 align="center">Update_System</h2>

<form action="2_update.php" method="get">
  <fieldset>
  <legend><h2>System</h2></legend><br/>
  seq: <input type="text" name="seq"><br/>
  survey: <input type="text" name="survey"></br>
  survey_status: <input type="text" name="survey_status"><br/>
  survey_date: <input type="text" name="survey_date"><br/>
  </fieldset>
  <br>
  <input type="submit" name="submit" value="submit">
</form>
<br>
<form action="1_test_preview.php" method="POST">
<input type="submit" name="submit_preview" value="preview list">
</form>

</body>
</html>
<!DOCTYPE html>
<html>
<body>
<h2 align="center">Result</h2>

<?php
if(isset($_POST['submit_preview'])){

$conn=mysql_connect("localhost","root","");
if (!$conn){die ("can not connect" . mysql_error());}
mysql_select_db("fs_change",$conn);
mysql_query("SET NAMES 'UTF8'");
mysql_query("set character set 'utf8'");

//set db connection
$sql_query1="select * from test";
$sql_nrow="select count(*) from test";
$result=mysql_query($sql_query1, $conn); 
$row_result=mysql_fetch_assoc($result); 
}
?>
<form id="form1" name="form1">
<table border="1" align="center">
<tr>
<td>class</td>
<td>class_group</td>
<td>name</td>
<td>addr</td>
<td>seq</td>
<td>survey</td>
<td>survey_status</td>
<td>survey_date</td>
</tr>

<?php do { ?>

<tr>
<td><?php echo $row_result['class']; ?></td>
<td><?php echo $row_result['class_group']; ?></td>
<td><?php echo $row_result['name']; ?></td>
<td><?php echo $row_result['addr']; ?></td>
<td><?php echo $row_result['seq']; ?></td>
<td><?php echo $row_result['survey']; ?></td>
<td><?php echo $row_result['survey_status']; ?></td>
<td><?php echo $row_result['survey_date']; ?></td>

<?php } while ($row_result = mysql_fetch_assoc($result));?>
<tr>

</table>
</form> 

<?php
mysql_free_result($result); 
?>
</body>
</html>
<?php
//get the data from session
session_start();
if(isset($_GET['seq'])){$_SESSION['seq']=$_GET['seq'];}
if(isset($_GET['survey'])){$_SESSION['survey']=$_GET['survey'];}
if(isset($_GET['survey_status'])){$_SESSION['survey_status']=$_GET['survey_status'];}
if(isset($_GET['survey_date'])){$_SESSION['survey_date']=$_GET['survey_date'];}



//set variables
    $seq = $_SESSION['seq'];
    $survey = $_SESSION['survey'];
    $survey_status = $_SESSION['survey_status'];
    $survey_date = $_SESSION['survey_date'];

//set db connection  
if(isset($_GET['submit'])){

$conn=mysql_connect("localhost","root","");
if (!$conn){die ("can not connect" . mysql_error());}
mysql_select_db("fs_change",$conn);
mysql_query("SET NAMES 'UTF8'");
mysql_query("set character set 'utf8'");

//set sql query
$sql_query1="UPDATE fs SET survey = $survey, survey_status = $survey_status, survey_date = $survey_date WHERE seq = $seq";
mysql_query($sql_query1, $conn);
mysql_close($conn);
} 
?>

<!DOCTYPE html>
<html>
  <body>
    test sql_query1:
    <?php 
    if ($sql_query1 === TRUE) {
    echo 'Updated Successfully'
    ;}
    else {echo "Update Failed";}
    ?> <br>
    seq:<?php echo $seq?><br>
    survey:<?php echo $survey?><br>
    survey_state:<?php echo $survey_status?><br>
    survey_date:<?php echo $survey_date?><br>
    <input type = "button" name = "return" value = "back" onclick= "history.back()"> &nbsp;
    </form>
  </body>
</html>

更新系统
系统
序号:
调查:
调查状态:
调查日期:


preview.php↓

CREATE TABLE `test` (
  `class` int(50) DEFAULT NULL ,
  `class_group` int(50) DEFAULT NULL,
  `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `addr` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `seq` int(50) NOT NULL,
  `survey` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `survey_status` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `survey_date` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `test` (`class`, `class_group`, `name`, `addr`, `seq`, `survey`, `survey_status`, `survey_date`) VALUES
(1, 0, 'Michael  ', 'USA', 10, '', '', '0000-00-00'),
(1, 0, 'Jordan  ', 'CAN', 20, '', '', '0000-00-00');

ALTER TABLE `test`
  ADD PRIMARY KEY (`seq`);
<?php
session_start();
?>

<!DOCTYPE html>
<html>
<body>

  <h2 align="center">Update_System</h2>

<form action="2_update.php" method="get">
  <fieldset>
  <legend><h2>System</h2></legend><br/>
  seq: <input type="text" name="seq"><br/>
  survey: <input type="text" name="survey"></br>
  survey_status: <input type="text" name="survey_status"><br/>
  survey_date: <input type="text" name="survey_date"><br/>
  </fieldset>
  <br>
  <input type="submit" name="submit" value="submit">
</form>
<br>
<form action="1_test_preview.php" method="POST">
<input type="submit" name="submit_preview" value="preview list">
</form>

</body>
</html>
<!DOCTYPE html>
<html>
<body>
<h2 align="center">Result</h2>

<?php
if(isset($_POST['submit_preview'])){

$conn=mysql_connect("localhost","root","");
if (!$conn){die ("can not connect" . mysql_error());}
mysql_select_db("fs_change",$conn);
mysql_query("SET NAMES 'UTF8'");
mysql_query("set character set 'utf8'");

//set db connection
$sql_query1="select * from test";
$sql_nrow="select count(*) from test";
$result=mysql_query($sql_query1, $conn); 
$row_result=mysql_fetch_assoc($result); 
}
?>
<form id="form1" name="form1">
<table border="1" align="center">
<tr>
<td>class</td>
<td>class_group</td>
<td>name</td>
<td>addr</td>
<td>seq</td>
<td>survey</td>
<td>survey_status</td>
<td>survey_date</td>
</tr>

<?php do { ?>

<tr>
<td><?php echo $row_result['class']; ?></td>
<td><?php echo $row_result['class_group']; ?></td>
<td><?php echo $row_result['name']; ?></td>
<td><?php echo $row_result['addr']; ?></td>
<td><?php echo $row_result['seq']; ?></td>
<td><?php echo $row_result['survey']; ?></td>
<td><?php echo $row_result['survey_status']; ?></td>
<td><?php echo $row_result['survey_date']; ?></td>

<?php } while ($row_result = mysql_fetch_assoc($result));?>
<tr>

</table>
</form> 

<?php
mysql_free_result($result); 
?>
</body>
</html>
<?php
//get the data from session
session_start();
if(isset($_GET['seq'])){$_SESSION['seq']=$_GET['seq'];}
if(isset($_GET['survey'])){$_SESSION['survey']=$_GET['survey'];}
if(isset($_GET['survey_status'])){$_SESSION['survey_status']=$_GET['survey_status'];}
if(isset($_GET['survey_date'])){$_SESSION['survey_date']=$_GET['survey_date'];}



//set variables
    $seq = $_SESSION['seq'];
    $survey = $_SESSION['survey'];
    $survey_status = $_SESSION['survey_status'];
    $survey_date = $_SESSION['survey_date'];

//set db connection  
if(isset($_GET['submit'])){

$conn=mysql_connect("localhost","root","");
if (!$conn){die ("can not connect" . mysql_error());}
mysql_select_db("fs_change",$conn);
mysql_query("SET NAMES 'UTF8'");
mysql_query("set character set 'utf8'");

//set sql query
$sql_query1="UPDATE fs SET survey = $survey, survey_status = $survey_status, survey_date = $survey_date WHERE seq = $seq";
mysql_query($sql_query1, $conn);
mysql_close($conn);
} 
?>

<!DOCTYPE html>
<html>
  <body>
    test sql_query1:
    <?php 
    if ($sql_query1 === TRUE) {
    echo 'Updated Successfully'
    ;}
    else {echo "Update Failed";}
    ?> <br>
    seq:<?php echo $seq?><br>
    survey:<?php echo $survey?><br>
    survey_state:<?php echo $survey_status?><br>
    survey_date:<?php echo $survey_date?><br>
    <input type = "button" name = "return" value = "back" onclick= "history.back()"> &nbsp;
    </form>
  </body>
</html>

结果

您缺少值的单引号。使用下面的更新SQL和HTML获取成功或失败消息

$sql_query1="UPDATE fs SET survey = '$survey', survey_status = '$survey_status', survey_date = '$survey_date' WHERE seq = '$seq'";

$query_result = mysql_query($sql_query1, $conn);
mysql_close($conn);
} 
?>

<!DOCTYPE html>
<html>
  <body>
    test sql_query1:
    <?php 
    if ($query_result) {
    echo 'Updated Successfully'
    ;}
    else {echo "Update Failed";}
    ?> <br>
$sql\u query1=“更新fs集合调查='$survey',调查状态='$survey\u status',调查日期='$survey\u date',其中seq='$seq';
$query\u result=mysql\u query($sql\u query1,$conn);
mysql_close($conn);
} 
?>
测试sql_查询1:


您刚刚开始使用php-mysql组合,并且选择了
mysql
db扩展。为什么?@Drew抱歉,我不明白你的意思。我是php+mysql初学者,你能告诉我更多吗?
if($sql\u query1===TRUE){
不会为TRUE,因为变量保存查询而不是查询执行结果。分配一个变量,然后检查条件是否为
$result=mysql\u query($sql\u query1,$conn);
然后在if条件下
if($result){
将在
PHP5.5上进行搜索,并在PHP7中删除。请改用PDO或MySqli。
@Sasikumar:谢谢你的建议。我尝试过了,仍然不起作用。谢谢你的建议,现在我成功更新了,但在MySQL数据库中,它没有显示我刚刚更新的值。为什么呢?你应该检查数据类型和长度根据insert/update值的最大可能性,对表列进行排序。我的数据库架构如下:seq:int(50)\这是主键survey:varchar(50)survey\状态:varchar(50)survey\日期:varchar(50)仍然不工作,为什么?
echo$sql\u query1=“更新fs集合调查='$survey',survey_status='$survey_status',survey_date='$survey_date',其中seq='$seq'“exit;
-它将打印SQL语句。复制打印的SQL并在phpmyadmin中运行并查看输出。感谢您的帮助,实际上我在变量上添加引号后完成了更新过程。无法显示正确输出的原因是我在$SQL\u query1变量中键入了我的表名。这对我帮助很大,谢谢。