无法使用PHP ODBC连接写入MS SQL数据库
问题:我可以使用odbc_exec在PHP中成功地使用select查询,但是,我无法执行无法使用PHP ODBC连接写入MS SQL数据库,php,sql-server-2005,insert,odbc,Php,Sql Server 2005,Insert,Odbc,问题:我可以使用odbc_exec在PHP中成功地使用select查询,但是,我无法执行插入或更新查询 资源:WindowsServer2003:IIS6,SQLServer2005 这是我的密码: <?php require('../_DSN/DSN_M.php'); $cnnOra = odbc_connect($strarrDSN['dsn'], $strarrDSN['username'], $strarrDSN['pswd']); $res_slct = odbc_exec($
插入或更新查询
资源:WindowsServer2003:IIS6,SQLServer2005
这是我的密码:
<?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);
?>
我在这里遗漏了什么吗?我找到了解决办法。我不知道为什么我的原始代码不起作用
我需要使用odbc\u prepare和odbc\u 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());
这也适用于插入到
查询中的。非常感谢@andrewsi 您正在连接的帐户的权限是什么?当您尝试除SELECT之外的任何操作时,数据库返回的错误是什么?另外,如果pk_person_ID是字符串,我会感到惊讶。解决方案可以简单到将“32”替换为32。您的字段是否命名为“person_-ame”???这不是打字错误吗?我连接的SQL帐户具有写入数据库的权限。pk_Person_ID不是一个字符串,它是一个int。但是,我尝试过使用单引号和不使用单引号,它不会改变结果。我已经使用SQLDeveloper完全按照键入的方式运行了更新SQL,它执行得很好。person_name在这里是一个输入错误,但不在脚本中…@andrewsi我似乎无法显示任何错误。顺便说一句:一旦我开始使用此代码,它就开始返回错误消息。
$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());