无法使用PHP ODBC连接写入MS SQL数据库

时间:2013-04-15 16:50:14

标签: php sql-server-2005 insert odbc

问题:我可以使用odbc_exec在PHP中成功使用select查询,但是,我无法执行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 

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分: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 !!