这是我的php代码无法正常工作....
它不会接受if条件中的查询以及每次执行其他部分....
<?php
include('admin/class.php');
**这是我的数据库连接**
$hostname="localhost";
$username="root";
$password="";
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
$se = mysql_select_db("timesheet1234",$dbhandle)
or die("Could not select timesheet1234");
echo "connected to db";
if(isset($_POST['save']))
{
echo "post if";
$sel=@$_POST['selpro'];
$mon=@$_POST['mon'];
$tue=@$_POST['tue'];
$wed=@$_POST['wed'];
$thu=@$_POST['thu'];
$fri=@$_POST['fri'];
$sat=@$_POST['sat'];
$sun=@$_POST['sun'];
这是我的代码,问题开始并且无法正常工作
if(isset($_SESSION['user']))
{
echo "session user";
$sql="UPDATE empdaytimesheet SET `project code`='$sel',`mon`='$mon',`tue`='$tue',`wed`='$wed',`thu`='$thu',`fri`='$fri',`sat`='$sat',`sun`='$sun' where `username`='".$_SESSION['user']."'";
$res=mysql_query($sql,$dbhandle);
if($res){
echo "<script type='text/javascript'>";
echo "alert('TimeSheet Saved..!')";
echo "</script>";
echo "<script type='text/javascript'>";
echo "window.location='my_timesheet.php'";
echo "</script>";
}
else
{
echo "<script type='text/javascript'>";
echo "alert('Some Error Occured ! Retry..!')";
echo "</script>";
echo "<script type='text/javascript'>";
echo "window.location='my_timesheet.php'";
echo "</script>";
}
}
}
?>
答案 0 :(得分:2)
UPDATE table empdaytimesheet SET...
是无效的SQL。你的意思可能是;
UPDATE empdaytimesheet SET...
此外,带有空格的列名需要引用 - 在MySQL的情况下 - 反引号,即;
UPDATE empdaytimesheet SET `project code`=...
您需要注意的是,您对SQL注入持开放态度。如果有人发布包含单引号的sel
值,则可以重写SQL。例如,使用Fiddler将值sel
发布为',username='
会使您的sql更新表格的用户名列;
UPDATE empdaytimesheet SET `project code`='',username='',mon=...
通常只是将未经检查的post变量放入SQL字符串是件坏事。这是mysql_*
API被PDO
和mysqli
淘汰的一个重要原因,他们有处理此问题的方法。
答案 1 :(得分:2)
更改
$sql="UPDATE table empdaytimesheet SET project code='$sel',...
到
$sql="UPDATE empdaytimesheet SET `project code`='$sel', ...
^ no table here ^ ^ backticks