草庐IT

php - 制作用于 Hook PDO 查询的 databaseDo() 函数

所以我开始了thistutorial作为PHPPDO的介绍。到目前为止,我只处理过基本的mysql_*类型查询。我注意到,在整个教程中,connect->doaction->disconnect模式不断重复,只有doaction部分发生了变化。在现实世界中,通过创建一个可以将查询传递到其中的函数来消除重复是否是个好主意?例如:处理查询的函数:getMessage();}?>然后,假设我想执行PDO教程第一个示例中的操作,我会这样设置:exec($query);echo$exec;};//PerformactiondatabaseDo($insert);?>$dbh的范围我使用$dbh作

php - 本地主机渲染页面很慢

我的本​​地主机渲染页面很慢。一切甚至简单的html渲染都需要大约2-5秒。我研究了它并通过替换修复了它:new\PDO(...':host=localhost'...);到new\PDO(...':host=127.0.0.1'...);任何人都可以向我解释或给我一个链接以了解为什么localhost正在变慢以及如何将它更改为IP使其变得非常快。现在,它甚至可以在不到一秒的时间内呈现复杂的查询,而之前需要大约5-10秒。另外用IP替换localhost会不会有什么安全问题?我的意思是,如果我实时托管我的项目并将localhost替换为主机的IP,这会对任何类型的安全产生影响吗?非常感

PHP 无法加载动态库 "php_pdo_oci.dll"

我在Windows8上运行Apache2.4.7和PHP5.5.9。我安装了PHPUnit,这个警告图像“警告”开始弹出。是的,我在php.ini和“extension_dir”中启用了扩展加载以更正文件夹,并且该文件夹中有一个名为“php_pdo_oci.dll”的文件。我尝试使用不同的apache和php版本,但没有帮助。有什么解决方法的建议吗? 最佳答案 ..._oci.dll是OracleC接口(interface)的一部分。除非你需要使用Oracle,否则我建议你去php.ini文件中的相关行,取消注释这个扩展的加载。但是

php - PDO : insert 3 rows instead in mysql when i insert just 1 row

我在我的php框架(flight)中使用PDO,但我遇到了一个荒谬的问题。当我将1行插入mysql时,我看到插入了3行。Flight::db()->query("INSERTINTO`menu_item`(`order`,`menu_cat_id`)VALUES(22,1)");这是我的全部代码:setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND,"SETNAMES'utf8'");$db->exec("SETNAMES'utf8';"

PHP PDO - mysqli_num_rows 的替代方案

在mysqli中,我可以使用mysqli_num_rows从选择查询中获取行数。我找不到不用像SELECTCOUNT(*)这样的单独查询就可以用PDO做到这一点的方法吗?当我已经有一个记录集时,我看不到进行单独查询的意义。 最佳答案 您可以按照记录使用SQL_CALC_FOUND_ROWShere.例如:$result=$db->prepare("SELECTSQL_CALC_FOUND_ROWSid,nameFROMfruitWHEREcalories>100");$result->execute();$result=$db->p

php - 在 CodeIgniter 3 中设置数据库连接超时

我们正在使用2个数据库,我们的本地数据库和一个外部数据库。但是现在我们的外部数据库已关闭(我们仍在开发中,所以我们遇到了这个问题很好)并且它现在尝试连接到外部数据库30秒,我怎样才能将数据库的连接超时更改为类似1-2秒?我在我的数据库上使用Codeigniter和PDO驱动程序。有没有人对此问题有一个干净的解决方案? 最佳答案 这不是记录的功能,但您可以通过添加options设置从数据库配置文件(application/config/database.php)执行此操作,例如:$db['default']['options']=ar

PHP PDO 扩展不适用于 IIS

我有一个使用__autoload()来加载类的脚本(愚蠢的,我知道,这是我用来娱乐/测试的旧代码),它似乎试图自动加载PDO。这让我相信它没有找到它应该找到的PDO类。我已经检查了php.ini和php_pdo.dll以及php_pdo_mysql.dll等。.dll文件存在于“ext/”中,我已经多次重新启动Web服务器。我对IIS没有太多经验,但我从未在Linux上遇到过这个问题,所以我不确定问题出在哪里。如有任何帮助,我们将不胜感激。编辑:PDO不在phpinfo()中。我知道它加载不正确,我想找出原因。这是我的php.ini文件:php.inionPasebinC:\Progr

PDO从SQLITE上选择额外的空白行

这涉及一个SQLITE数据库,PHP7和PDO。查询代码是:...$stmt=$pdo->query('SELECT*FROMimages');while($row=$stmt->fetch(\PDO::FETCH_ASSOC)){$images[]=["image_id"=>$row["image_id"],"date"=>$row["date"],"photographer"=>$row["photographer"],...];}echo$stmt->rowCount()."rows";echocount($images)."images";var_dump($images);retur

使用PDO和.MDB访问使用替换,并使用PHP搜索

我正在尝试编写一个MySQL查询,该查询将匹配表中的名称,并且数据库中的名称可以包含点或没有点。所以,例如我想要我的查询字符串fast符合所有这些:fast,f.ast,f.a.s.t等等我使用PHP,并连接到.MDB数据库。我在这里尝试了我发现的东西,没有成功(我会遇到错误):SELECT*FROMtableWHEREreplace(col_name,'.','')LIKE"%fast%"我认为用于MDB数据库的PDO缺少一些功能:(有解决方案吗?看答案感谢Doug,我解决了:$variable=implode("[.]",str_split($variable))."[.]";和:SELE

PHP脱离类PDO连接失败

我无法在班级外部建立PDO连接。浏览器给出500个错误。我想在课堂上编写PDO代码。我正在做全球变化,但事实并非如此。try{$pas=newPDO('mysql:host=localhost;dbname=tets','root','123');$pas->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$pas->exec("SETCHARACTERSETutf8");//returnallsqlrequestsasUTF-8}catch(Exception$e){echo$e->getMessage();}/**UserAva