草庐IT

php - 从 MS SQL 中的 PHP PDO 存储过程返回 Select *

对于future的用户:这个问题的底部包含更正后的工作代码。我知道Select*不是最好的,但在这个例子中,我试图从php调用一个存储过程并返回整个结果集,这样我就可以在我的代码中循环遍历数组。这是我当前的存储过程:USE[hanoncs_AskMe]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETNOCOUNTON;GOCREATEPROCEDURE[hanoncs_hanoncs].[CommentsTemp]@QuestionIDINTASBEGINBEGINTRANSACTIONIFObject_id('#viewquestionco

php - Bluemix 上的 PDO fatal error

我真的坚持让PDO在bluemix中与PHP一起工作。我无法使用它,每次出现此错误时:Fatalerror:Class'PDO'notfoundin...然后我在.bp-config下添加了options.json\{"PHP_VERSION":"{PHP_55_LATEST}","WEB_SERVER":"httpd","PHP_EXTENSIONS":["bz2","zlib","openssl","fpm","tokenizer","curl","mcrypt","mbstring","pdo","mysqli"]}然后我也尝试使用.bp-config下的php.ini\disp

PHP PDO (MSSQL) 无法获取输出参数

我正在尝试使用bindParam(PHPPDO)获取OUTPUT。PHPPDO库是用于MSSQL驱动程序的FreeTDS。无论我做什么,我似乎都无法按照php.net上的建议在绑定(bind)参数中获得“输出”。我已经验证我可以调用EXEC并返回结果集(使用选择),但OUTPUT参数永远不会改变。PHP代码。$this->db是一个PDO对象$stmt=$this->db->prepare("EXEC".$this->db_schema."[".$this->procedure."]:error_num,:error_msg");$error_num=0;$error_msg='';$

php - PDOException : SQLSTATE[IMSSP]: Tried to bind parameter number 65536. SQL Server 最多支持2100个参数

好吧,我遇到了一个非常奇怪的PDOException,我似乎无法理解。这是生成的异常:PDOException:SQLSTATE[IMSSP]:Triedtobindparameternumber65536.SQLServersupportsamaximumof2100parameters.inD:\Work\CEUR16-004\Project\www_root\includes\scripts\php\libCore\products.php:169Stacktrace:#0D:\Work\CEUR16-004\Project\www_root\includes\scripts\p

php - 关于 PDO 和 bindparam 的说明

我是PDO的新手,不得不说到目前为止我喜欢它,但我对它使用的一些调用仍然有点不稳定,而且文档也不是那么可靠。我正在使用几个存储过程,根据我对PDO的了解,我不得不为此使用prepare。我构建了一个模块,用于存储有关由用户引起的任何错误的信息。我知道bindParam会转义任何引号并在将字符串插入数据库之前清理字符串,这不是我想要的。我想查看用户输入的字符串以进行故障排除。我试图放弃bindparam调用,但在尝试通过引用传递时遇到错误。有什么办法可以做到这一点?也愿意接受建议。谢谢。 最佳答案 bindParam本身不会“转义”或

php - 无法通过 php pdo 驱动程序连接到 postgreSQL 数据库

我最近决定从MySQL切换到PostgreSQL,主要是为了学习一个新的数据库。这非常痛苦,但我想我已经接近了。我正在使用php和PDO,我的PDO驱动程序已成功安装和配置。打开我的网站,出现错误:Connectionfailed:SQLSTATE[08006][7]FATAL:Identauthenticationfailedforuser"postgres"我正在使用以下连接调用(我尝试了在$dsn变量和单独的$user/$pass变量中调用user/pw的几种变体,包括port=5432):$dsn='pgsql:dbname=db1;host=localhost;user=po

php - PDO 准备语句的语法错误

我才刚刚开始使用准备好的语句,我的前几个示例效果很好,但现在我遇到了我不理解的SQL语法。我有一个执行INSERT的函数,它采用关联数组的参数,其中数组的键是字段,数组的值是要插入的值。例如:$arr=array("field1"=>"value1","field2"=>"value2");$this->insert("table",$arr);将执行:INSERTINTOtable('field1','field2')VALUES('value1','value2')但是,当尝试这样做时,出现以下错误:PDOException:SQLSTATE[42000]:Syntaxerroro

php - 如何在 PDO(或 MySQLi)查询中正确处理关联数组?

我正在为一个项目使用MySQLi(但可以轻松切换到PDO,请阅读底部的编辑)。我想要的是能够将关联数组处理为mysql查询,而无需手动键入每个键/值对。我知道这可能很简单,但是当涉及到MySQLi/PDO时,我仍处于学习过程中。为了清楚说明我的意思,举个例子:假设我有这个关联数组:$data=array('name'=>'Objective','short_name'=>'OB','generation'=>1);我想要的是创建这样的查询:UPDATEsignalsSET?=?WHEREsid='1'它变成这样的查询(或代替UPDATE、INSERT、SELECT等):UPDATEsi

PHP PDO : Charset=UTF8 : An invalid keyword charset was specified in the dsn string

我正在使用sqlsrv驱动程序连接到带有PDO的MSSQL服务器。PHP版本为5.3.24。工作连接如下所示:$dsny="sqlsrv:Server=xx1;Database=xx2";$usery='xx3';$passwordy='xx4';$dbhy=newPDO($dsny,$usery,$passwordy);**但是我需要设置字符,然后我试试这个:$dsny="sqlsrv:Server=xx1;Database=xx2;charset=utf8";$usery='xx3';$passwordy='xx4';$dbhy=newPDO($dsny,$usery,$passw

php - 为什么我们需要在bindParam()中指定参数类型?

我有点困惑为什么我们需要在Php的PDO的bindParam()函数中指定我们传递的数据类型。例如这个查询:$calories=150;$colour='red';$sth=$dbh->prepare('SELECTname,colour,caloriesFROMfruitWHEREcaloriesbindParam(1,$calories,PDO::PARAM_INT);$sth->bindParam(2,$colour,PDO::PARAM_STR,12);$sth->execute();如果我不指定第三个参数,是否存在安全风险。我的意思是如果我只是在bindParam()中做:$