小编use*_*538的帖子

SWIG生成的代码无法在PHP 5.3.2未定义的符号上运行:zend_error_noreturn

我有一个库,我已经成功地使用PHP 5.1.6,借助SWIG(v1.3.40)生成的一些包装器代码.

我刚刚升级到PHP 5.3.2,我看到以下错误:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/myLib_php.so' - /usr/lib/php/modules/myLib_php.so: undefined symbol: zend_error_noreturn in Unknown on line 0 
Run Code Online (Sandbox Code Playgroud)

经过调查,似乎由SWIG(myLib_wrap.c)生成的包装器代码包含对PHP函数的调用:zend_error_noreturn并且PHP 5.3.2中没有此函数?

有没有人见过这个问题?事情似乎工作,如果我手动更新生成的代码,这样,而不是调用的zend_error_noreturn 它只是调用zend_error.这种方法安全吗?

php swig zend-framework

6
推荐指数
1
解决办法
2000
查看次数

什么是通过SQL更新单个记录并获取更新记录的id的最佳方法?(爪哇/ MSSQL)

我知道我可以像这样更新一条记录 - 但是如何才能访问已更新的记录的id?(我正在使用MSSQL,所以我不能使用Oracles RowId)

update myTable
set myCol = 'foo'
where itemId in (select top 1 itemId from myTable )
Run Code Online (Sandbox Code Playgroud)

如果我正在使用插入,我可以使用getGeneratedKeys来获取id字段值,但我认为没有相应的更新?

我知道我可以使用可滚动的结果集来做我想要的

stmt = conn.prepareStatement("select top 1 myCol, itemId from myTable", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet resultSet = stmt.executeQuery();
if(resultSet.first()){
    resultSet.updateString(1, "foo");
    resultSet.updateRow();
    String theItemId = resultSet.getString(1)
}
resultSet.close();
Run Code Online (Sandbox Code Playgroud)

但我担心性能,因为测试显示负载下的锁定超时,我想知道是否有更好/更简单的方法?

- 编辑:刚刚完成这个问题......当我们迁移到MSSQL2005时,我们将升级我们的代码以使用Rich的答案.在当前版本中,我们使用了锁提示:(UPDLOCK ROWLOCK READPAST)来缓解原始代码显示的性能问题.

java sql-server

0
推荐指数
1
解决办法
2609
查看次数

标签 统计

java ×1

php ×1

sql-server ×1

swig ×1

zend-framework ×1