草庐IT

pdo_parse_params

全部标签

PHP PDO MySQL IN (?,?,?

我想写一个像这样的MySQL语句:SELECT*FROMsomeTableWHEREsomeIdIN(value1,value2,value3,...)这里的技巧是我不知道IN()中会有多少个值。显然我知道我可以通过字符串操作随时生成查询,但是由于这将在循环中运行,我想知道我是否可以使用PDOPreparedStatement来完成它。类似于:$query=$PDO->prepare('SELECT*FROMsomeTableWHEREsomeIdIN(:idList)');$query->bindValue(':idList',implode(',',$idArray));这可能吗?

php - Mysql PDO Prepared语句效率

我正在接管一个PHP应用程序,该应用程序在每次运行SQL语句时都使用MySQLPDO准备好的语句。我知道当您要对同一语句进行多次迭代时,准备SQL会更有效率。$sth=$dbh->prepare('SELECTname,colour,caloriesFROMfruitWHEREcaloriesexecute(array(150,'red'));$red=$sth->fetchAll();$sth->execute(array(175,'yellow'));$yellow=$sth->fetchAll();但是,我正在接管的应用程序在PDO之上构建了一个调用通用“执行”函数的层,它似乎准

php - MySQL PDO 错误 : 'Data too long for column' when passing a boolean parameter for a BIT column

我发现的唯一类似问题是:InsertphpbooleanintomysqlbitcolumnwithZend_Db但这没有答案。请看下面的简化测试:“允许”列类型是BIT。'roleID'列类型为INT。'permID'列类型为INT。$dbo=newPDO("mysql:dbname=database;host=127.0.0.1","phpuser","pass");$query=$dbo->prepare("INSERTINTOws_role_perms(allow,roleID,permID)VALUES(:allow,:roleID,:permID)");$query->bi

php - 来自带有 PDO 的存储过程的特定错误代码(在 Zend Framework 2 中)

我正在尝试启动并运行ZendFramework2中的存储过程。我尝试了returnanerrorcodewithanoutparameter在存储过程中,但我一直无法完成这项工作。然后我想当发生错误时,我可以在PHP中捕获异常。问题是我似乎无法访问特定错误代码-只有一般错误代码(例如23000-违反完整性约束)。这是我想要做(或类似)的一个例子:try{$result=$this->dbAdapter->query('CALLsp_register_user(?,?)',array('username','password'));}catch(\Exception$e){switch(

mysql - 如何在 Windows 上的 AppServ 上启用 PDO?

我第一次尝试使用PDO创建一个应用程序,当我try{$db=newPDO('mysql:host=localhost;dbname=DBname','user','pass');}catch(PDOException$e){echo'Failedtoconnecttodatabase.Pleasetrytorefreshthispagein1minute.However,ifyoucontinuetoseethismessagepleasecontactyoursystemadministrator.';echo''.$e->getMessage();exit();}当然,我已经将用户

PHP PDO 错误消息作为变量发送到电子邮件中

在PHP中从MySQL切换到PDO。过去,当运行查询但由于某种原因未执行时,我可以给自己发送一封电子邮件,邮件正文中包含mysql_error()消息,如下所示:$query="SELECTdogsFROManimals";$res=mysql_query($query);if(!$res){$error="ErrorMessage:".mysql_error();mail("my@email.com","DatabaseError",$error);}当网站上的数据库出现问题时,我会收到emil的提醒。我的PDO设置如下:setAttribute(PDO::ATTR_EMULATE_

php - mysql_fetch_assoc() 的 PDO 方法?

我曾经做过:$resource=mysql_query("SELECT*FROMtableWHEREid=".$id);$user=mysql_fetch_assoc($resource);echo"HelloUser,yournumberis".$user['number'];我读到mysql语句都已弃用,不应使用。我如何使用PDO执行此操作?第一行应该是:$stmt=$db->prepare("SELECT*FROMtableWHEREid=".$id);//therewasanaditionaldoublequoteinhere.$stmt->execute(array(':id

php - PDO 执行数组到字符串转换错误

当我尝试运行PDO执行时,出现数组到字符串的转换错误。执行必须输入一个是普通字符串,另一个是数组。这是我的代码:$id="1";$array=array("a","b","c");$in=str_repeat('?,',count($array)-1).'?';$sql1="SELECT*FROMtbl1AStb1RIGHTJOINtbl2AStb2ON(tb1.e_id=tb2.e_id)LEFTJOINtbl3AStb3ON(tb2.m_id=tb3.m_id)WHEREtb1.u_id=?ANDtb1.lettersIN($in)";$statement1=$db_handle-

PHP PDO : How long are prepared mysql queries cached?

如何利用准备好的语句来提高性能?我知道如果我把它放在一个循环中,这样的事情可能会有所帮助:SELECT`Name`FROM`Hobbits`WHERE`ID`=:ID;我读到过循环with准备好的语句比循环没有准备好的语句要快,但是否则准备好的语句会稍微降低性能。那么-这个循环有多大?如果我在代码的开头运行一个复杂的SQL查询,并在末尾使用一个不同的参数重复它——第二个查询会运行得更快吗?(我们为每个页面加载使用一个连接)。缓存查询是否有限制,所以我最好立即重复我的查询?使用完全相同的参数(重新加载页面或2个用户)执行整个脚本两次怎么样? 最佳答案

php - 在 PDO 中,如果将 int 引用为字符串,性能会有所不同吗?

如果在准备好的PDO查询中将整数绑定(bind)为字符串,性能会有所不同吗?在Mysql中,如果值被绑定(bind)为一个int或一个字符串,查询就可以工作,但是在性能上有什么不同,或者这样做时有什么陷阱吗?$pdo=newPDO("mysql:host={$host};port={$port};dbname={$dbname};charset=utf8",$username,$password);$statement=$pdo->prepare("SELECT*FROM`table`WHERE`id`=:param");//Isthereanyperformancedifferenc