QeePHP框架学习笔记(自定义SQL执行)

今天做了一个从老数据库里面有用的数据导入到新的数据库里面时,想到了用Qeephp框架来做,先把老数据库里面的有用的东西查询出来,再把在老数据库里面查询到的数据添加到新的数据库里面,这个思路有了,于是就开始动手做了。

刚才开始就想直接从查询到的数据直接插入到新的数据库里面。可是发现了一个蛋疼的问题,出现了这个的错误!

exception 'QDB_ActiveRecord_ChangingReadonlyPropException' with message 'Setting readonly property "id" on object "Textuser" instance.' in C:\wamp\www\myqeephp\lib\qeephp\library\orm\activerecord.php:708

#0 C:\wamp\www\myqeephp\app\controller\insertdata_controller.php(86): QDB_ActiveRecord_Abstract->__set('id', 8)
#1 [internal function]: Controller_Insertdata->actionTest()
#2 C:\wamp\www\myqeephp\app\controller\abstract.php(63): call_user_func_array(Array, Array)
#3 C:\wamp\www\myqeephp\app\myapp.php(226): Controller_Abstract->execute('test', Array)
#4 C:\wamp\www\myqeephp\public\index.php(14): MyApp->dispatching()
#5 {main}
如果要改变对异常的处理,请修改文件 "C:\wamp\www\myqeephp\app\myapp.php" 的 exception_handler() 方法 

 

 

 

 

 

 

结果发现在表在Model中默认就给主键加上了这个属性

// 主键应该是只读,确保领域对象的“不变量”
                'id' => array('readonly' => true),

 发现主主键设置了只读,所以不能改主键的值 。于是就想到了把“‘id’ => array('readonly' => true)”注释掉。就把它改成了这样。

// ‘ id ’ => array('readonly' => ture),

于是我就再次运行了程序,结果意想不到的事出现了,给了个“OK”的提示。以为可以了,到数据库里面去看了一下,结果让我傻眼了,发现在数据库里根本就没有半条记录,此时的心情你应该懂的。想死感觉都有了。唉!改了来改去,最后还是没有一个结果,于是就问问经理,想让他帮我看看。

他过来一看,不要一分钟的事,立马就解决了。

$conn  = Heuser::meta()->getConn();
$conn->execute($sql);

 

 

当时我还看不懂,经过他详细的介绍,我知道了。知道怎么了。于是自己才能写下面的代码 :

方法一:

$conn = QDB::getConn();
$sql = "insert into user_count values('',$id,'','','','','','','','','','','','','','');";
 //echo $sql;
$handle = $conn -> execute($sql);
 if($handle){echo "数据插入成功! "."<br />";}

 

 

 

 

方法二:

$test1 = new Textuser();
$test1 -> changePropForce('id',2); //强制更改主键的值 ,第1个参数为:属性名称,第2个参数为:要更改的值。

 

 

标签:更改主键的值。

 总结:问题都在实践中找到了。经过这几天实践,发现的问题也就越多,能解决这些问题。说明了自己在实践中学到了东西。还要更加努力的学习。

转载于:https://www.cnblogs.com/hejinmin/archive/2012/02/28/2371554.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值