草庐IT

php - PDO 连接从命令行工作,但不是通过 Apache?

我有一个非常简单的测试脚本:query($SQL)as$row){print$row['phrase']."\n";}?>当我从命令行执行这个脚本时,它运行良好:$phptest.phpcorporalpunishmentStretchesvoluntaryagenciesandtheresettlementofrefugeesmusicandlearningNikeTigerWoodsScandalHermeneiaPSYCHINFOanthonybourdainBlack-WhiteCouplesandtheirSocialWorldscolonization,hodge但是当我通

php - PDOStatement::getColumnMeta 返回原始表名而不是 View 名

我正在使用CakePHP框架。当返回查询结果时,框架调用“实验性”PDOStatement::getColumnMeta以在数据从数据库返回时“排列”数据。但是,根据查询的不同,结果会有所不同。有时数据数组会按预期返回,其中所有列都与View名称相关联。其他时候,返回的数据是混合的,其中一些数据位于与View对应的原始表关联的数组中。//correctArray([MyInstall]=>Array([id]=>a6d1342a-7b4d-11e1-8397-60195b7d6275[user_id]=>dc038c9e-7b4b-11e1-8397-60195b7d6275[scri

php - PDO 在 PHP5.4 中将整数列作为字符串返回

首先,我知道在SO上有各种类似的问题,例如this和this.但是,当我从表中获取值时,整数总是作为字符串获取。我正在使用PHP5.4(5.4.16-1~dotdeb.1)和MYSQL5.5(5.5.31+dfsg-0+wheezy1)。它写成hereMySQLNativeDriver在PHP5.4.0中默认启用。但我仍然得到字符串值。我按如下方式初始化一个PDO对象。try{$dsn='mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8';$db=newPDO($dsn,DB_USER,DB_PASS);$db->setAtt

php - PDO::query 与 PDOStatement::execute(PHP 和 MySQL)

我扩展了PDO类以创建一个简单的DB类,目前对所有运行到数据库的查询使用prepare+execute,即使是那些没有参数的查询(例如SELECT*FROMtable)。问题是:对于没有参数的简单查询实际使用PDO::query代替准备/执行是否有性能优势? 最佳答案 是的,因为当你调用PDO::prepare时,服务器必须为该查询创建一个查询计划和元信息,然后在你使用时绑定(bind)指定参数会有额外的开销>PDO::执行。因此,为了节省这种开销并提高性能,您可以使用PDO::query进行不带参数的查询。但是,根据您的应用程序的

mysql - 无效的 PDO 查询不返回错误

下面的第二个SQL语句在phpMyAdmin中返回一个错误:SET@num=2000040;INSERTINTOartikel(artikel_nr,lieferant_nr,bezeichnung_1,bezeichnung_1)SELECT@num:=@num+1ASanum,70338,f2,f3FROMimportWHEREid>1MySQL说:#1110-Column'bezeichnung_1'specifiedtwice全部正确。但是当我使用这个函数在Symfony1.4中运行查询时://runsqlquery//http://erisds.co.uk/symfony/s

php - 无法使用 PDO 连接到 MySQL 服务器

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭8年前。Improvethisquestion我有一个PHP脚本,用于连接到MySQL数据库。通过mysql_connect的连接工作完美,但在尝试使用PDO时出现以下错误:SQLSTATE[HY000][2005]UnknownMySQLserverhost'hostname'(3)我用来连接的代码如下:setAttribute(PDO::A

mysql - 如何将 mysql_data_seek 与 PDO 一起使用?

我想将mysql_data_seek与来自谷歌搜索的PDO一起使用,我发现它应该如下所示:$row0=$result->fetch(PDO::FETCH_ASSOC,PDO::FETCH_ORI_ABS,0);但是它不起作用,我做错了什么?这是我的代码:$query="SELECTname,ageFROMusers";$q=$db->prepare($query);$q->execute();$q->setFetchMode(PDO::FETCH_ASSOC);$arrayData=$q->fetchAll();foreach($arrayDataas$row){echo$row['n

php - PDO 不适用于端口

我正在尝试使用PDO连接到外部数据库。$dbh=newPDO('mysql:host=hotsname;port=3309;dbname=dbname','root','root');但是,这不适用于我拥有的一台特定服务器。我以为可能只允许某个主机,但我检查了mysql规则,还在我个人的服务器上尝试了这段代码,并且连接正常。所以我知道代码可以正常工作,并且它们在我这边没有阻塞,并且防火墙正在接受对端口3309的请求并将其传递到端口3306上的正确服务器。所以问题只出在一台服务器上。作为测试,我想我会打开端口3306来测试代码而不指定端口。$dbh=newPDO('mysql:host=

php - SQLSTATE[HY000] [2002] 资源暂时不可用 - mysql - innodb 和 pdo

在我的错误日志中获得大量结果,如下所列。数据库中的所有表都是innodb,就与这些表的任何交互而言,一切都是带有准备好的语句的pdo。正如我所说,所有错误都与下面列出的错误几乎相同,但发生在几个不同的页面上。无论页面如何,错误行总是指向我开始新语句的点......例如$stmt=$db->prepare(".......语句本身工作得很好,没有错误,所以我对导致这种情况的原因有点困惑。不同页面的多个类似错误:[25-Sep-201410:19:09America/Chicago]Failedtoconnecttodatabase:SQLSTATE[HY000][2002]Resourc

PHP PDO : Unable to connect, 目录名称无效

我正在尝试在我的主机上设置一个新站点(主机路由,如果它很重要)但是当我尝试使用PDO时我总是收到这个错误(我正在尝试的第一个PDO站点):Fatalerror:Uncaughtexception'PDOException'withmessage'SQLSTATE[3D000]:Invalidcatalogname:1046Nodatabaseselected'in/home/kennyi81/public_html/gamersite/login.php:36Stacktrace:#0/home/kennyi81/public_html/gamersite/login.php(36):