草庐IT

PDO_ODBC

全部标签

mysql - 返回的记录集已关闭(通过 VBA 中的 ODBC 访问 mysql DB)

长期观看者第一次海报。我正在开发一个带有Excel前端的数据库应用程序。因此我使用VBA访问MySQL数据库。我使用的驱动程序是ODBC驱动程序(Windows),并且我与数据库的连接有效,因为许多其他查询都运行良好。我想做的是从一系列SQL语句中返回结果,而不是试图将它们全部组合成一个庞大的语句(这可能有效,但难以维护/理解)。我已将标志FLAG_MULTI_STATEMENTS=67108864添加到抑制驱动程序语法错误的连接字符串中。但是现在当我运行以下命令时:queryDB.OpenSQLquery,connrecordset(queryDB)保持关闭状态,没有明显的错误。sq

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