草庐IT

PDO_SQLANYWHERE

全部标签

php - PDO 错误 : SQLSTATE[HY000]: General error: 2031

我遇到了这个烦人的错误,虽然我知道为什么会遇到这个错误,但我终其一生都找不到解决办法。if($limit){$sth->bindValue(':page',$page-1,PDO::PARAM_INT);$sth->bindValue(':entries_per_page',$page*$entries_per_page,PDO::PARAM_INT);}$sth->execute($criteria);查询包含占位符(:placeholder)。但是要添加那些LIMIT占位符,我需要使用手动方法(bindValue),否则引擎会将它们变成字符串。我没有收到Invalidnumbero

php - PDO::rowCount 与 COUNT(*)

我有一个使用PDO的查询,首先计算行数,如果行>1则获取数据SELECT*WHEREid=:id$row=$SQL->rowCount();if($row>0){while($data=$SQL->fetch(PDO::FETCH_ASSOC)){...}}else{echo"noresult";}或SELECTCOUNT(*),*WHEREid=:id$data=fetch(POD::FETCH_NUM);$row=data[0];if($row>0){//fetchdata}else{echo"noresult";}哪个性能更好?第二。问题,如果我在id上设置了索引哪个更好COUN

php - 具有大结果集的 PDO/MySQL 内存消耗

我在处理从大约30,000行的表中进行选择时遇到了一个奇怪的问题。似乎我的脚本使用了过多的内存来执行简单的、仅向前遍历查询结果。请注意,这个例子是一个有点做作的、绝对最低限度的例子,它与真实代码几乎没有相似之处,它不能用简单的数据库聚合来代替。它旨在说明不需要在每次迭代中保留每一行的观点。PDO::ERRMODE_EXCEPTION,));$stmt=$pdo->prepare('SELECT*FROMround');$stmt->execute();functiondo_stuff($row){}$c=0;while($row=$stmt->fetch()){//dosomethin

php - PDO 是执行语句期间受影响的行

我找到了很多使用PDO的exec语句的方法,但我不确定它是否对我有帮助。我的理解是我必须对准备好的语句使用execute()函数。我正在用用户输入的数据更新一行,所以我想使用准备好的语句而不是query()调用。我的代码如下:$dbh=buildDBConnector();$sql="UPDATEtb_usersSETauthState=1WHEREid=?ANDauthPass=?";$q=$dbh->prepare($sql);$f=$q->execute(array($id,$authPass));if($f){echo'Success';}else{echo'Failure';

php - PDO 语句 (MySQL) : inserting value 0 into a bit(1) field results in 1 written in table

我使用bit(1)字段来存储bool值并使用PDO准备好的语句写入表中。这是测试表:CREATETABLEIFNOTEXISTS`test`(`SomeText`varchar(255)NOTNULL,`TestBool`bit(1)NOTNULLDEFAULTb'0')ENGINE=MEMORYDEFAULTCHARSET=latin1;这是测试代码:$pdo=newPDO("connectionstringetc");$statement=$pdo->prepare('INSERTINTO`test`(SomeText,TestBool)VALUES(?,?)');$stateme

php - PDO 无法在其他无缓冲查询处于事件状态时执行查询

我知道这必须是一个简单的修复,我部分理解为什么会收到此错误但不知道如何修复它。我查看了文档,但除了使用缓冲查询选项外找不到解决方案。我也试过了,但没用。错误是:PDOCannotexecutequerieswhileotherunbufferedqueriesareactive错误来self构建$result数组的行。foreach($phonesas$phone){$stmt=db::getInstance()->prepare("CALLphones(:phone)");$stmt->bindParam(':phone',$phone,PDO::PARAM_INT,10);$stm

PHP PDO 异常 : "SQLSTATE[HY093]: Invalid parameter number"

当我尝试运行以下函数时出现错误“SQLSTATE[HY093]:参数编号无效”:functionadd_persist($db,$user_id){$hash=md5("per11".$user_id."sist11".time());$future=time()+(60*60*24*14);$sql="INSERTINTOpersist(user_id,hash,expire)VALUES(:user_id,:hash,:expire)ONDUPLICATEKEYUPDATEhash=:hash";$stm=$db->prepare($sql);$stm->execute(array

php - 使用MySQL PHP PDO从数据库返回一个值

我不想使用循环。我只是从一列的一列中提取一个值。我通过以下代码得到了我想要的东西,但必须有更简单的方法使用PDO。try{$conn=newPDO('mysql:host=localhost;dbname=advlou_test','advlou_wh','advlou_wh');$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}catch(PDOException$e){echo'ERROR:'.$e->getMessage();}$userid=1;$username=$conn->query("SELEC

php - Laravel 5.4 上 PHP 7.0 : PDO Exception - Could not find driver (MySQL)

我在我的Ubuntu14.04(带有Plesk12.5.30的VPS)上有一个Laravel5.4项目。在创建数据库并设置包含所需信息的.env文件后,我运行了phpartisanmigrate并抛出了异常:[Illuminate\Database\QueryException]couldnotfinddriver(SQL:select*frominformation_schema.tableswheretable_schema=pmaramaldbandtable_name=migrations)[PDOException]couldnotfinddriver我的.env文件有:DB

php - PDO::__construct():服务器向客户端发送未知字符集 (255)。请向开发人员报告

我正在尝试从Symfony3应用程序连接到MySQL数据库。但是当尝试从Symfony控制台命令创建MySQL模式时,我收到此错误:PDO::__construct():Serversentcharset(255)unknowntotheclient。请向开发者报告PHP和MySQL都在Docker容器中运行。MySQL版本:8.0.1PHP版本:7.1.3驱动程序:pdo_mysql字符集:UTF8dsn:"mysql:host=mysql;dbname=database;charset=UTF8;"有什么想法吗? 最佳答案 My