草庐IT

PDO-ODBC

全部标签

php - 不要回滚使用 PHP、PDO 和 Postgres 的事务中的错误

我有一个基于PHP/Yii的非常广泛的PHP更新脚本,可以更新不同数据库类型(MSSQL、Postgres和MySQL)上的数据库。整个脚本在事务中运行。但是,有些语句会导致查询错误(例如,如果某个键已存在于表中)。我用try/catch语句将它们包围起来-到目前为止这在MySQL中运行良好但是在Postgres上,一旦发出无效查询,事务就会自动失败。以下所有语句都会显示以下错误消息:CDbCommandfailedtoexecutetheSQLstatement:SQLSTATE[25P02]:Infailedsqltransaction:ERROR:currenttransacti

php - 需要从数据库返回/回显 PHP PDO 结果

好吧,我确实做了我的研究,但我似乎无法弄清楚这一点。长话短说,我正在使用这样的东西:顺便说一句,“(WebsiteInfo)”只是为了检测我的网站/数据库信息。$SQL=newPDO('mysql:dbname=(WebsiteInfo);host=(WebsiteInfo);charset=utf8','(WebsiteInfo)','(WebsiteInfo)');$SQL->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);$SQL->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTI

php - 如何在 PDO::FETCH_FUNC 中使用对象方法

这个问题引用了以下内容http://www.php.net/manual/en/pdostatement.fetchall.php来自PHP手册。这使我能够在获取查询结果之前传递一个函数来处理查询结果。我想将对象中的方法作为函数传递。假设对象被$this引用了,我该怎么写呢? 最佳答案 如果您在类范围之外工作。你可以这样做//SELECTid,titleFROMpages$result=$sth->fetchAll(PDO::FETCH_FUNC,array('Foo','bar'));ClassFoo{publicfunction

php - 这个 PDO 代码对 SQL 注入(inject)足够安全吗?

这个问题在这里已经有了答案:ArePDOpreparedstatementssufficienttopreventSQLinjection?(7个答案)关闭9年前。正如标题所说:这段代码对SQL注入(inject)足够安全吗?有没有更好的方法来防止SQL注入(inject)?setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$db->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);$query=$db->prepare("INSERTINTO`$usertable`(first_n

php - PDO 语句获取 - 无法访问空属性

我真的很困惑。这个查询在本地主机上工作得很好,但在任何实际的实时服务器上都没有。同一数据库上的其他查询有效,因此连接或pdo扩展没有任何问题。基本上这是查询:$sql="SELECT*FROMbksb_Resources";$query=$this->connection->query($sql,array());query()方法返回PDOStatement对象然后我在一个循环中调用$this->connection->fetch($query),它又被路由到“connection”对象上的一个方法:functionfetch_pdo($st){return$st->fetch();

PHP/PDO MariaDB Galera 集群

我正处于配置可从全局四个位置访问的服务的最后阶段(计划稍后添加更多)。我将在装有MariaDB的Ubuntu12.04机器上运行服务器。我最初的想法是创建具有4个不同数据库且彼此独立运行的服务器,并遵守用户只能登录到他们最初注册的服务器的限制。但是,我刚刚遇到了thisarticle这让我开始思考...。根据我的阅读,如果我按照文章中的建议设置一个具有主-主复制的Galera集群,我就可以拥有一个在所有四台服务器上始终可用的大型数据库。我已经收集到(并希望)在集群设置正确且运行良好的情况下,我几乎不需要在我的PHP代码中做任何事情(四个MariaDB实例将具有相同的用户来访问数据库)—

php - 用于 MS SQL Server 的 PDO DBLIB 驱动程序 : Cannot find php_pdo_driver. h

我正在按照下面链接中的教程在我的MacOsMojave中编译PDO的DBLIB驱动程序。https://github.com/BellevueCollege/public-docs/blob/master/PHP/configure-mssql-pdodblib-mac.md问题是,当我运行下面的代码时:$cdphp-7.2.9/ext/pdo_dblib$phpize$./configure--with-php-config=/usr/bin/php-config--with-pdo-dblib=/usr/local/$make$sudocpmodules/pdo_dblib.so/

php - 无法通过 Linux 机器上的 ODBC 连接到 informix

我在运行CentOS7的虚拟机上工作,我正在尝试通过一些php使用ODBC(unixODBC)连接到Informix数据库。我正在使用php7.0,我已经安装了unixODBC-2.3.7以及informixsdk包(iif.12.10.FC12DE.linux-x86_64)。我已经这样配置了odbc.ini和odbcinst.ini:odbcinst.ini:[ODBCDrivers]IBMINFORMIXODBCDRIVER=Installed[IBMINFORMIXODBCDRIVER]Driver=/opt/IBM/Informix_Software_Bundle/lib/c

php - 帮助排查 PDO 准备语句

我刚刚开始学习关于PDO和准备好的语句(这似乎肯定比记住每次都使用mysql_real_escape_string()更好)但是我无法正确执行脚本:getMessage();exit();}$dbh->prepare('SELECT*FROMusersWHEREuid=?');$dbh->execute(array('15400743'));$result=$dbh->fetchAll();print_r($result);echo"end";?>这几乎是从示例代码中复制的,但执行时只返回“开始”。我已经仔细检查了我的数据库/用户/密码。还有什么其他人看错了吗?谢谢!

php - 使用 PHP 的 odbc 抓取一个 varchar(max) 列

我正在为一个类(class)项目构建一个PHP网站,我们使用MSSQLServer2008数据库来填充网站上的字段。但是,其中一个字段将垃圾输出到页面上,而不是实际存储在数据库中的内容。有问题的字段称为description,是一个varchar(MAX)字段;存储过程在数据库中查询元组并将其表中的值转储到页面上的文本框中;description字段输出到textarea控件。这是处理从数据库中提取信息的PHP:$res=odbc_exec($dbhandle,"execdbo.usp_ProgramGet".$_GET["program"]);$id=$_GET["program"]