0

问题:我可以使用 odbc_exec 在 PHP 中成功使用选择查询,但是我无法执行INSERT INTO or UPDATE查询。

资源:Windows Server 2003:IIS 6、SQL Server 2005。

这是我的代码:

<?php
require('../_DSN/DSN_M.php');

$cnnOra = odbc_connect($strarrDSN['dsn'], $strarrDSN['username'], $strarrDSN['pswd']);
$res_slct = odbc_exec($cnnOra, " select * FROM person;") or die (odbc_errormsg());

odbc_result_all($res_sldr);

$sqlupd = "UPDATE person SET person_ame='Steve Woz' WHERE pk_person_ID = '32';"

$res_upd = odbc_exec($cnnora, $sqlupd) or die(odbc_errormsg());      
$res_cmt = odbc_commit($cnnora);

var_dump($res_upd);
var_dump($res_slct);
var_dump($res_cmt);

// close the connection 
odbc_close($cnnOra); 
?>

SELECT 查询的输出显示并且页面上没有 errormsg 或 var_dump 结果。

这是 SELECT 查询的输出:

pk_person_ID fk_SSN    fk_qual1_ID fk_qual2_ID person_Name 
31           999999999 1           1           bobby buchier 
32           999999999 2           2           Frank Gifford 

我在这里错过了什么吗?

4

1 回答 1

0

我为我找到了解决方案。当我的原始代码没有时,我不确定为什么这会起作用。

我需要使用 odbc_prepare 和 odbc_exec。这是对我有用的代码:

$q = "UPDATE person SET person_name = 'Steve Woz' WHERE pk_person_ID = '32'"; 
$res = odbc_prepare ($cnnOra, $q) or die (odbc_errormsg()); 
$exc = odbc_execute($res) or die (odbc_errormsg());

这也适用于INSERT INTO查询。非常感谢@andrewsi!

于 2013-04-17T14:00:08.747 回答