草庐IT

u2-pdo-driver

全部标签

php - PDO 准备语句中的参数编号无效

我正在处理使用PDO类创建的一系列查询,在某些情况下,我的查询需要相同的参数。我创建了一个用于保存数据的foreach语句的数组,但一些变量来自外部,我可以在一个查询中同时使用这两个数据吗?例子://$connectionisthePDOobject;//$full_datacontains://$full_data[$i]["address"]//$full_data[$i]["phone"]//$full_data[$i]["email"]//$full_data[$i]["user_id"]//$full_data[$i]["surname"]//notusedbutpresen

php - 选择计数,使用 PHP PDO 求和

如何使用PHPPDO获取count(*)或SUM(col1)我用过$STH_SELECT=$dbh->prepare("SELECTcount(*)FROMTable");$STH_SELECT->execute;$result=$STH_SELECT->fetchAll;$Count=$result[0][0];这是否正确,是否有更好的方法? 最佳答案 当您没有在查询中输入任何数据时,您不需要使用准备好的语句。$STH_SELECT=$dbh->query("SELECTcount(*)FROMTable");$Count=$ST

php - 自定义 PDO 错误尝试/捕获

目前,当我的SQL出现错误时,它会抛出如下所示的传统错误:Fatalerror:Uncaughtexception'PDOException'withmessage'SQLSTATE[42000]:Syntax...|我知道我可以通过将每个SQL例程包装在一个try/catchblock中来实现我想要的,但这似乎有点冗长:classProductsModelextendsModel{function__construct(){parent::__construct();}publicfunctionsetName($name,$productId){$SQL='UPDATEproduc

php - pdo lastInsertId 返回零(0)

所有查询都执行成功,当我检查MySQL行中的表插入成功且没有任何错误时,但是lastInsertId()返回0。为什么?我的代码://queriesexecutessuccessfully,butlastInsetId()returns0//themenustablehas`id`columnwithprimaryauto_incrementindex//whylastInsertIdreturn0anddoesn'treturnactualid?$insertMenuQuery="SELECT@rght:=`rght`+2,@lft:=`rght`+1FROM`menus`ORDER

php - PHP中的PDO,如何改进这个PDO mysql代码

感谢检查。所有有用的答案/评论都已投票。我有以下代码,可以完成工作,但imo效率不高。我认为它效率不高的原因是因为我使用的是fetchAll+循环即使我知道查询将返回1条记录或没有记录。//assumetheusualnewPDO,binding,andexecuteareuphere$myval="somevalue";$res=$stmt->fetchAll(PDO::FETCH_ASSOC);if(!$res){//norecordmatches//BLOCKACODEHERE}else{//foundmatchingrecord(butalwaysgoingtobe1recor

php - PDO + PHP lastInsertId() 问题

如果例如当用户点击链接时,会自动插入一个新行,然后php代码请求最后插入的id,同时插入另一行,这不会有问题吗另一个用户,所以返回的id实际上不是我期待的那个..?我错了吗?有没有办法在没有“安全”漏洞的情况下做同样的事情?(比如可能来自准备好的声明或其他内容......)P.Sid是自动生成的。谢谢。 最佳答案 如manual中所述:LAST_INSERT_ID()(withnoargument)returnsaBIGINT(64-bit)valuerepresentingthefirstautomaticallygenerate

php - -> 在 PDO PHP 中是什么意思?

这个问题在这里已经有了答案:Reference—WhatdoesthissymbolmeaninPHP?(24个答案)关闭9年前。我是学习PDOforPHP的完全初学者,实际上我还没有学习MySQL或MySQLi。(请看下面的代码)我试图弄清楚这个“->”箭头的含义,但我在其他地方找不到答案。箭头在语义上等同于日常英语中的Action词“执行”吗?E.G下面的代码,$stmt(perform)->closeCursor();代码:$stmt=$db->prepare($sql);$stmt->execute(array($title,$entry));$stmt->closeCurso

php - pdo 准备转义单引号

我在我正在构建的Web应用程序中使用PDO。我一直认为(实际上我错了)使用prepare应该有助于插入变量中的单引号,但似乎我错过了一些东西。我在插入像L'Aquila这样的值时出错,其中输入数据中有单引号。我的实际代码是:$sql="INSERTINTOanagraficheSETid_ndg='$protocol',nick='$nick',nome='$nome',cognome='$cognome',ragsoc='$ragsoc',leg_rappr='$leg_rappr',cod_fisc='$cod_fisc',p_iva='$p_iva',cf_estero='$cf

php - 为什么我在 PHP PDO 请求中得到 "Unexpected T_AS"?

我收到以下错误...Parseerror:syntaxerror,unexpectedT_ASin....\index.phponline98对于下面的脚本...setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$db->beginTransaction();$stmt=$db->prepare("SELECT*FROMtablename");$stmt->execute();while($db->fetch(PDO_FETCH_ASSOC)as$row){$id=$row['id'];$name=$row['name'];}

php - php PDO 可以获取两个结果集吗?如果是,那么 1 个结果集或多于 1 个结果集哪个更好?

如果可能,我如何获取两个结果集:$sth=$dbh->prepare("SELECT*FROMtb1WHEREcond1;SELECT*fromtb2Wherecond2");$sth->execute();$row=$sth->fetchAll();print_r($row);这是两个完全不同的表(没有共同的字段)。 最佳答案 是的PDO可以获取两个(或更多)行集,只要您使用的数据库支持它。我认为MSSQLServer和MySQL都支持此功能,但在撰写本文时SQLite不支持。你要的函数是PDOStatement::nextRow