0

我一直在尝试根据用户会话(UserLogin)更新我的数据,但它一直说:标准表达式中的数据类型不匹配。print_r仅用于测试目的。

提前致谢,

Z

function Employee1_BeforeShow(& $sender)
{
    $Employee1_BeforeShow = true;
    $Component = & $sender;
    $Container = & CCGetParentContainer($sender);
    global $Employee1; //Compatibility


$Page = CCGetParentPage($sender);

$db = $Page->Connections["PettyCashMDB"];

$sql1 = "UPDATE Employee SET Employee.LastActive = Date() WHERE Employee.[EmpID] = ". $_SESSION['UserLogin'];
$db->query($sql1);

print_r($_SESSION['UserLogin']);



$db->close();
Employee1_BeforeShow @67-67106FAD
return $Employee1_BeforeShow;
}

编辑:我已经尝试过@NanaPartykar 的方法,但偶然我注意到它确实从 中获取值$_SESSION['UserLogin'],只是数据类型以某种方式不同。

编辑:它显示错误Data type mismatch,但它们都是字符串并返回字符串。

4

4 回答 4

0

而不是Employee.[EmpID],使用Employee.EmpID

于 2016-05-27T09:44:45.557 回答
0

你需要一些报价:

$sql1 = "UPDATE Employee SET Employee.LastActive = Date() WHERE Employee.[EmpID] = \'". $_SESSION['UserLogin'] . "\'";
于 2016-05-27T10:20:43.290 回答
0

Z - 有一堆内置的 Codecharge 函数可以帮助从查询字符串、会话和控件中获取值。

例如:CCGetSession("UserLogin", "default");

http://docs.codecharge.com/studio50/html/index.html?http://docs.codecharge.com/studio50/html/Components/Functions/PHP/Overview.html

并通过一些验证执行 SQL(来自“执行自定义 SQL”帮助主题):

$db = new clsDBConnection1();
$SQL = "INSERT INTO report (report_task_id,report_creator) ". 
     "VALUES (". $db->ToSQL(CCGetFromGet("task_id",0),ccsInteger) .",". $db->ToSQL(CCGetUserID(),ccsInteger) .")";

$db->query($SQL);
$db->close(); 

$db->ToSQL(和 CCToSQL)函数为相关数据类型(ccsText、ccsDate)转换和添加引号。

手册中有许多示例,位于 PHP(和 ASP、.NET 等)的“示例”和“编程参考”下

http://support.codecharge.com/tutorials.asp

我强烈建议查看一些示例,因为 Codecharge 将处理大量“管道”,并且添加大量自定义代码会导致代码生成出现问题。在您的示例中,您应该将“自定义代码”操作添加到记录的“演出前”事件并在那里添加您的代码。如果您在任何地方添加代码,则整个代码部分(例如:显示前)将更改颜色,并且在您更改某些内容时不再更新。

例如,如果您手动编辑“更新”功能以更改默认值,则通过 IDE/Properties 进行的任何更改都不会更改“更新”功能(例如向记录添加新字段)。

于 2016-05-30T07:51:16.120 回答
0

终于让它工作了,这是代码$sql1 = "UPDATE Employee SET LastActive = Date() WHERE EmpID = '$_SESSION[UserLogin]' ";感谢所有帮助过的人。

于 2016-06-01T01:20:10.827 回答