草庐IT

free_result

全部标签

php - Mysqli get_result 替代方案

我刚刚使用mysqli将我所有的sql查询更改为准备好的语句。为了加快这个过程,我创建了一个函数(称为performQuery)来代替mysql_query。它接受查询、绑定(bind)(如“sdss”)和要传入的变量,然后执行所有准备好的语句。这意味着更改我所有的旧代码很容易。我的函数使用mysqliget_result()返回一个mysqli_result对象。这意味着我可以更改我的旧代码:$query="SELECTxFROMyWHEREz=$var";$result=mysql_query($query);while($row=mysql_fetch_assoc($result

php - bind_result 成数组 PHP mysqli 预处理语句

想知道如何将PHP准备语句的结果绑定(bind)到数组中,然后如何调用它们。例如这个查询$q=$DBH->prepare("SELECT*FROMusersWHEREusername=?");$q->bind_param("s",$user);$q->execute();这将返回用户名、电子邮件和ID的结果。想知道我是否可以将它绑定(bind)到一个数组中,然后将它存储在一个变量中以便我可以在整个页面中调用它? 最佳答案 引入PHP5.3mysqli_stmt::get_result,它返回一个结果集对象。然后您可以调用mysqli

php - mysqli_free_result 有必要吗?

我正在查看我的代码并读到它被推荐使用mysqli_free_result当不再需要您的结果对象时。但是在看到每个查询在整个脚本中重复输出到$result变量后,我想知道mysqli_free_result是否真的有必要。似乎每次运行查询时,$result变量都已被清除并设置为新结果。只是好奇是否有人对此有任何意见。 最佳答案 其实是有必要的,因为当有很多请求时,它可能会给服务器带来沉重的负担。因此,最好您应该使用它。在其他一些情况下,当您知道此查询后跟其他查询时,您不必使用它。 关于ph

php - fatal error :调用未定义的方法 mysqli_result::fetch_all()

我在Ubuntu10.04中遇到PHP问题。当我尝试使用mysqli_result::fetch_all时出现此错误:调用未定义方法mysqli_result::fetch_all()但是,它适用于WindowsXP。代码:$result=$this->dbh->query('SELECT[...]');return$result->fetch_all(MYSQLI_ASSOC);我不想将fetch_assoc与循环一起使用,因为我将结果发送到另一层进行处理。我使用的是PHP5.4.4。和php-m|grepmysql它没有出现的mysqlnd模块。我该如何安装它?这可能是问题所在吗?

php - codeigniter,result() 与 result_array()

我同时使用result()和result_array()。通常我喜欢将结果作为数组获取,这就是我主要使用result_array()的原因..但我想知道我应该遵循哪种更好的方法,就性能而言,哪一个更有效?这是我在codeigniter查询中讨论的示例$query=$this->db->get();$result=$query->result_array();或者这应该是更好的方法吗??$query=$this->db->get();$result=$query->result();我现在也在我的通用模型中使用result_array。 最佳答案

SQL LIMIT 不返回结果 where no LIMIT returns results

SELECT*FROMmm_tfsWHEREproduct_slugLIKE'%football%'ANDschoolid='8'ANDcategory_id='21'LIMIT4像我问的那样返回4个值,但以下语句返回0-是否有我不熟悉的关于使用OR语句的规则?我的假设是它应该返回1中的所有值(如果不是限制,则返回更多)。SELECT*FROMmm_tfsWHERE(product_slugLIKE'%football%'ANDschoolid='8'ANDcategory_id='21')OR(product_descriptionLIKE'%football%'ANDschooli

php - while ($row = mysql_fetch_array($result)) - 执行了多少个循环?

如果...$query="SELECTcol1,col2,col3FROMtableWHEREid>100"$result=mysql_query($query);对于这个Action:while($row=mysql_fetch_array($result)){....}这是在执行1个循环(迭代x次)吗?对于这个:$row=mysql_fetch_array($result)foreach($rowas$r){...}这是在执行2个循环(迭代x次)吗?其中x是结果数编辑:好的,谢谢大家,好的,我基本上把这个问题表述得非常非常糟糕。回想起来应该是'doesmysql_fetch_arr

php - $stmt->close() 与 $stmt->free_result()

在完成准备好的mysqli$stmt->close()和$stmt->free_result()之间的区别强>声明。到目前为止我使用:$mysqli=newmysqli(host,user,password,database);$stmt=$mysqli->prepare(sqlstatement);[...]$stmt->free_result();$mysqli->close();一切似乎都很好。但我看到很多程序员使用$stmt->close而不是$stmt->free_result()。一旦我看到了他们两个:$stmt->free_result();$stmt->close();

mysql - 在 MySQL 中 information_schema.TABLES.DATA_FREE 是什么意思?

我不完全确定information_schema.TABLES.DATA_FREE在MySQL中的含义。谁能帮我理解一下?谢谢。 最佳答案 DATA_FREE-已分配但未使用的字节数。它是与数据库文件中存储的数据相比的数据库文件的大小。PHPMyAdmin将此信息显示为“表中的开销”。但是对于InnoDB这很重要——“InnoDB表报告表所属表空间的空闲空间。对于位于共享表空间中的表,这是共享表空间的空闲空间。”。因此,使用典型的InnoDB设置(未设置“innondb_file_per_table”),您将获得所有表的可用空间,而

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