草庐IT

PREPARED

全部标签

php - Laravel SQLSTATE[HY000] : General error: 1615 Prepared statement needs to be re-prepared

我最近启动了我的基于Laravel的网站,我没有遇到任何问题,但是40分钟前当我检查它时我得到了这个错误:SQLSTATE[HY000]:Generalerror:1615Preparedstatementneedstobere-prepared(SQL:select*from`users`where`id`=1and`remember_token`=mfjLlbv3fR49TYGAqmUgBSqVVAKmoHhq26ws8rojuXxee5qWcvHrcdoTXs6Wlimit1)为什么会这样?一切都很好,现在突然间我什么也做不了了。 最佳答案

sql - 为了性能优势,我是否应该始终更喜欢使用准备好的 SQL 语句?

我的理解是准备好的语句在服务器上编译一次,从而节省了重复解析、优化等的开销。显然,我应该总是更喜欢使用准备好的语句来运行超过一次。这种方法有什么缺点吗?我正在使用ODBC(libodbc++)从C++到MySQL。 最佳答案 PreparedStatements:Whyusepreparedstatements?Therearenumerousadvantagestousingpreparedstatementsinyourapplications,bothforsecurityandperformancereasons.Prepa

mysql - Rails 3.2.3 mysql 错误 "max_prepared_stmt_count"

我正在运行一个Rails3.2.3应用程序,该应用程序使用apache2/passenger部署在具有mysql数据库服务器的虚拟主机上。在网站访问量很大后我收到了这个错误:ActiveRecord::StatementInvalid(Mysql::Error:Can'tcreatemorethanmax_prepared_stmt_countstatements(currentvalue:16382)我认为这与流量有关,但如果是这样,我必须找到解决方法。以前有人遇到过这个错误吗?我不知道如何阻止它。这是我在mysql中看到的:mysql>显示全局状态,如'com_stmt%';|Co

php - PDO 准备好的语句如何工作 “inside” ?

准备好的语句很有用,因为准备"template"来添加数据可以防止SQL注入(inject),我的问题是,这怎么可能?准备好的语句是如何工作的?在我编写查询、绑定(bind)参数并执行查询后,会发生什么?我不认为参数是在查询中“插入”的,在那种情况下,准备语句的效果会失败……也许它使用特殊的定界符来检测查询中数据的开始和结束。如果这是正确的,它们是什么? 最佳答案 确切的行为取决于。例如,PDO中的MySQL驱动程序可以根据PDO::ATTR_EMULATE_PREPARESattribute的值做两件完全不同的事情。:Enable

php - PDO 和 PHP/MySQL : what is the heck is wrong with PDO's prepared statements?

我知道这个标题听起来很可笑,但我已经研究了几个小时,现在才发现PDO最终是有问题的,没有明显的解决方案……我致力于为一个人开放。我也愿意接受我的代码有缺陷。使用PHP5.2/Ubuntu,此代码有效(不使用准备好的语句/开放注入(inject)):$sql="SELECTCOUNT(*)FROMpropertypINNERJOINproperty_attributepaONp.property_id=pa.property_idINNERJOINproperty_areapcONp.property_id=pc.property_idWHEREpa.attribute_value_id

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 - mysqli prepared statement查询错误在哪里?

这个问题在这里已经有了答案:CanIparameterizethetablenameinapreparedstatement?(2个答案)关闭去年。我正在尝试创建一个mysqli准备语句,其中我将表从odbc连接的数据库导入到mysql数据库,我在106列宽表查询中遇到此错误。YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'?(ID,column1,column2,column3,column4,'atline1"当

PHP PDO : How long are prepared mysql queries cached?

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

java - Prepared Statements如何比Statements更好地防止SQL注入(inject)?

背景:我已经开始了一个项目,使用JDBC和MYSQL来模拟一个书店,全是本地的。为了连接到数据库,我开始使用Statement,但我开始读到,当多次使用仅更改其参数的查询时,对这些查询使用PreparedStatement会更有效。然而,我读得最多的是PreparedStatements如何更好地防止SQL注入(inject)。来源:此线程的答案here谷歌教授我的问题:在处理参数化查询时,PreparedStatements如何比Statements更好地防止SQL注入(inject),甚至在这方面有所不同?我很困惑,因为如果我理解正确的话,这些值仍然会传递到执行的SQL语句中,这只

PHP/PDO : Prepared statements don't work when creating a table?

当我使用PDO准备语句,并使用它向查询插入表名时,它失败了,一个简单的例子:$stmt=$dbh->prepare("CREATETABLE?(idfoo,intbar,...)");$stmt->execute(Array('table_foobar'));它所做的只是将?替换为'table_foobar',单引号不允许为我创建表格!我最终需要在准备好的语句的顶部执行sprintf以添加预定义的表名。我到底错过了什么? 最佳答案 我在手册中找不到任何明确的内容,但查看用户贡献的注释,参数的使用仅用于实际值,而不是表名、字段名等。应