我一直在开发一些学生管理系统,其中学生登录和注册课程,登录后运行良好,显示了学生姓名、id等,要求注册课程,学生选课时应将选课内容更新到数据库中,提交页面需要从上一页获取学生id和课程,并相应更新数据库。
提交后,它只更新课程为$fresh :S
以下是submit.php代码:
<?php
$dbhost = 'localhost';
$dbuser = 'username';
$dbpass = '123';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
$fresh = $_REQUEST["fresh"];
$user_id= $_REQUEST["user_id"];
$sql = 'UPDATE courses
SET fresh="$fresh"
WHERE user_id=$user_id';
mysql_select_db('registrations');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
?>发布于 2014-02-15 10:52:53
单引号下的变量将永远不会被解析。
你的实际查询是这样的。
$sql = 'UPDATE courses SET fresh="$fresh" WHERE user_id=$user_id';
^----- This one This one ---------^所以重写它就像
$sql = "UPDATE `courses`
SET `fresh`='$fresh'
WHERE `user_id`=$user_id";发布于 2014-02-15 11:39:31
试试这段代码。
<?php
$dbhost = 'localhost';
$dbuser = 'username';
$dbpass = '123';
$database='registrations';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass,$database);
if (!$conn || $conn==null) die('Could not connect: ' . mysqli_error($conn));
$fresh = $_REQUEST["fresh"];
$user_id= $_REQUEST["user_id"];
$sql = "UPDATE courses
SET fresh='$fresh'
WHERE user_id=$user_id";
$retval = mysqli_query($conn, $sql);
if(! $retval )
{
die('Could not update data: ' . mysqli_error($conn));
}
else{
echo "Updated data successfully\n";
}
mysqli_close($conn);
?>发布于 2014-02-15 10:54:45
您需要将php变量放在引号中。
试试这个sql
$sql = "UPDATE courses
SET fresh='$fresh'
WHERE user_id='$user_id'";https://stackoverflow.com/questions/21796509
复制相似问题