草庐IT

php - 使 pdo::query 静态

当我运行下面的代码时出现这个错误。我通常使用msql函数,但我尝试改用PDO。怎么了?fatalerror:第14行无法静态调用非静态方法PDO::query() 最佳答案 ::符号用于调用定义为静态的方法,这意味着您无需创建对象的实例来调用该方法。query()方法不是静态的,这意味着您需要先创建PDO对象,然后对该对象调用query()方法。这应该是这样的:$dsn='mysql:dbname=testdb;host=127.0.0.1';$user='dbuser';$password='dbpass';$pdo=newPDO

mysql - 如何在 PDO 中使用 ON DUPLICATE KEY UPDATE 和 mysql?

详情我正在为新的或更新的许可证的到期做一个单一的插入。到期时间为插入日期起2年。如果检测到重复项,条目将更新,到期时间等于剩余到期时间加上2年。关于重复项,在下面的示例中,应该只有一行包含user_id=55和licence=commercial。表:licence_expiry--------------------------------------------------------|user_id|licence|expiry|--------------------------------------------------------|55|commercial|2013-

php - 'PDOException' 消息 'SQLSTATE[HY000] : General error: 2014 Cannot execute queries while other unbuffered queries are active

我知道这个问题已被问过很多次,但普遍接受的答案对我没有帮助。但我偶然发现了一个答案。设置如下:我有大量查询(主要是CREATETABLE)通过一个连接。但是CREATETRIGGER不断抛出可怕的2014错误。这与打开的游标无关,因为即使它是程序中唯一的命令也会发生。例如,这失败了:setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$db->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_

php - 检查用户名是否存在 PDO

我如何才能同时检查多个因素而不是检查每个因素?所以基本上我使用的是PDO,我必须确保用户名和电子邮件是唯一的。那我该怎么做呢?我见过if($sthandler->rowCount()>0){//dosomethinghere}但是有没有更好的方法呢?另外,如果没有人可以解释我将如何处理它。编辑这是我输入到数据库中的查询代码setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}catch(PDOException$e){exit($e->getMessage());}$name=$_POST['name'];$username=$

php - 时间戳自动更新不适用于 ON DUPLICATE KEY UPDATE (PDO)

我有一个时间戳设置为自动更新的表格作品集。CURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMPPHP中的PDO语句不会导致时间戳更新。$statement=$this->connection->prepare("INSERTINTOfolio(publication,productId)VALUES(:publication,:productId)ONDUPLICATEKEYUPDATEid=LAST_INSERT_ID(id),publication=:publication,productId=:productId");遵循手动方法可行但不可取。$s

php - 将表单中的数据输入数据库 PDO

我学习了MySQL,创建了一个表单并让它与数据库一起工作。然后我被告知我应该使用准备好的语句来执行PDO,所以我对此进行了一些研究并更改了我的代码。我现在有了正确的代码(我认为),但我无法弄清楚数据是如何输入的。正如您在我的代码中看到的那样,我让数据库在用户提交表单时创建行。然而,数据库只是根据//insertarow和//insertanotherrow下的语音标记中的任何内容进行拾取。例如,现在如果用户完成并提交表单,无论他们输入什么信息,我只会在我的数据库中显示“Joe”和“joe@example.com”等。显然我需要他们的答案,否则我的表格将是无关紧要的(数据提交也是如此)。

PHP PDO 通过用户名获取信息

好的,我以“管理员”身份登录,管理员有信息-钱,xp。我有代码:$query=dbConnect()->prepare("SELECT*FROMplayers");$query->execute();foreach($query->fetchAll(PDO::FETCH_ASSOC)as$row){echo'Name:'.$row['Name'].'Money:'.$row['Money'].'XP:'.$row['XP'];}我在mysql中有2个用户。如何让登录的人收到信息? 最佳答案 只需使用当前登录的用户选择特定行(用户凭据

php - 插入前检查数据库中是否存在行

$DBH=newPDO($dsn,$username,$password,$opt);$DBH->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);$DBH->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);$STH=$DBH->prepare("INSERTINTOrequests(id,imdbid,msg)VALUES('',:imdbid,:msg)");$STH->bindParam(':imdbid',$_POST['imdbid']);$STH->bindParam(

php - 如何使用 PDO 的 try-catch block

当使用trycatchblock时,处理PDO错误的正确方法是什么?目前我有这样的东西:BlogModel.phpclassBlogModelextendsModel{publicfunctionsave($id,$value){$stmt=$this->getDb()->prepare('UPDATEsettingSETname=:nameWHEREid=:id');$stmt->bindParam(':id',$id);$stmt->bindParam(':name',$values);return($stmt->execute()!==false)?$id:false;}}所以,

php - PDO 插入时使用值 null 而不是空值

我如何告诉PDO插入NULL而不是空值?示例:$SQL='INSERTINTO`Calendars_Events`(`CalendarID`,`AccID`,`DateFrom`,`DateTo`,`Location`,`Title`,`Description`)VALUES(:CalendarID,:AccID,:From,:To,:Location,:Title,:Description)';$Query=$this->DB->Link->prepare($SQL);$Query->bindParam(':CalendarID',$CalendarID,PDO::PARAM_INT