0

問題: PHP で odbc_exec を使用して選択クエリを正常に使用できますが、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 に答える