草庐IT

pdo_parse_params

全部标签

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 - parse_str 随机向键添加分号

我将查询字符串作为查询字符串的一部分传递给PHP脚本。有点像这样:$.post('/url',{id:postIDfilters:$('#form').serialize()});然后在我的PHP中,我使用parse_str读取filters:input->post('id');parse_str($this->input->post('filters'),$filters);问题是parse_str将;随机添加到键中。我得到这样的结果:array(4){["users"]=>string(0)""["companies;"]=>string(0)""["pref;_123"]=>st

PHP session_set_cookie_params() 问题

对于我登录部分的每个页面的标题,我添加了以下代码来维护session:session_set_cookie_params(1200,'/mysystem');session_start();我的意图是,我通过函数session_set_cookie_params()将session生命周期设置为1200秒,路径为/mysystem.使用此函数的原因是将sessioncookie与同一域中的其他PHP脚本分开,例如http://www.example.com/another_system/问题是,session在达到1200秒时过期,无论是否有事件(例如在/mysystem下加载另一个页

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 - 已安装 PDO 但没有 dblib

root@YYDream:/etc/apache2#dpkg-l|grepphp5iilibapache2-mod-php55.3.10-1ubuntu3.8server-side,HTML-embeddedscriptinglanguage(Apache2module)iiphp55.3.10-1ubuntu3.8server-side,HTML-embeddedscriptinglanguage(metapackage)iiphp5-cgi5.3.10-1ubuntu3.8server-side,HTML-embeddedscriptinglanguage(CGIbinary)ii

php - 可以使用 Symfony2 中的配置文件设置 PDO::MYSQL_ATTR_LOCAL_INFILE

是否可以在Symfony2中设置PDO/Doctrine配置以使用PDO::MYSQL_ATTR_LOCAL_INFILE=>true而无需直接使用PDO?我的用例是将csv文件加载到AmazonRDS上的MySQL。Symfony版本是2.4我得到错误:PHPWarning:PDOStatement::execute():LOADDATALOCALINFILEforbiddenin/.../vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.phponline165 最佳答案 是的,你

php - 新的 PDO 拒绝工作

我想用这些行创建一个sqlite数据库:";try{$db_connection=newPDO('sqlite:file.db');}catch(PDOException$e){echo'Connectionfailed:'.$e->getMessage();}echo"there";?>在那之后我期待输出herethere和文件夹中存在的文件file.db。但是我只看到这里,没有文件。所以看起来new甚至没有抛出异常就失败了。这是我目前检查的内容:php版本为5.4.16文件夹对apache是​​可写的(其实权限是777)还有什么可能/是什么问题?编辑我还尝试了以下felipsmar