我尝试在PHP中使用odbc_prepare和odbc_execute,如下所示:
$pstmt=odbc_prepare($odb_con,"select * from configured where param_name='?'");
$res=odbc_execute($pstmt,array('version'));
var_dump($res); //bool(true)
$row = odbc_fetch_array($pstmt);
var_dump($row); //bool(false)
第一个var_dump返回true,因此执行成功,但没有返回任何行。确实存在param_name =‘版本’的行。为什么没有返回行?
为了让事情变得有趣,我用php运行了另一个非常简单的例子,使用了一个准备好的insert。
$pstmt=odbc_prepare($odb_con,"insert into tmp1 values(?,'?')");
这一行本身向数据库中插入了一行!!这肯定是错的吧?输入的数据是第一列=空白,第二列=?
任何关于如何开始修复这个问题的建议都将不胜感激,谢谢。
编辑:这是在PHP 5.2.8中
发布于 2011-04-22 23:12:55
编辑:
啊,忽略我,误读php.net
odbc_fetch_array接受odbc_execute的结果作为它的参数,您似乎是在传递准备好的语句。
发布于 2011-05-06 07:17:48
你有没有试过用双引号?即
$res=odbc_execute($pstmt,array("version"));
https://stackoverflow.com/questions/5756369
复制相似问题