草庐IT

prep_stmt

全部标签

mysql准备语句在执行stmt时没有重复变量使用

假设是这样的SET@var1='val1';SET@var2='val2';SET@query="INSERTINTOmy_tableVALUES(?,?),(?,?),--...imagineherealotofvalues(?,?)";PREPAREstmtFROM@query;EXECUTEstmtUSING@var1,@var2,@var1,@var2,@var1,@var2;DEALLOCATEPREPAREstmt;有没有办法在EXECUTEstmtUSING上只写入一次变量?有些像这样:EXECUTEstmtUSING@var1,@var2;在这种情况下得到错误Incor

php - 返回由 mysqli_stmt_bind_param 创建的语句

我正在使用mysqli_stmt_bind_param()创建一个INSERT语句。出于某种原因,我收到一个错误。我使用mysqli_error()来查看错误消息,但它并不是特别有用。有没有办法只查看实际正在执行的查询?产生的错误:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'desc,date,expdate,mintix,maxtix,contactname,contactemail,contactphone)

php - mysqli_stmt::bind_param():变量数与准备语句中的参数数不匹配

这个问题在这里已经有了答案:mysqli_stmt::bind_param():Numberofvariablesdoesn'tmatchnumberofparametersinpreparedstatement(1个回答)关闭2年前。我想运行多个mysql查询(不是同时运行)。我正在使用准备好的语句来这样做。这是我的代码的要点:stmt_init();$stmt->prepare("SelectusernameFROMuserswhereusername=?ANDactivationid=?");$username=$_GET['username'];$activationid=$_

php - mysqli_stmt::bind_result():绑定(bind)变量的数量与准备语句中的字段数量不匹配

我一直在尝试使用准备好的语句在PHP中编写登录表单,但每次我尝试登录时都会收到以下错误:mysqli_stmt::bind_result():Numberofbindvariablesdoesn'tmatchnumberoffieldsinpreparedstatement这是我的代码:prepare("SELECTusernameANDpasswordFROMusersWHEREusername=?");$username=$_POST['name'];$stmt->bind_param('s',$username);$stmt->execute();$stmt->bind_resu

c++ - 将变量插入到 mysql 表中

我知道如何将非变量值插入MySql表(使用C++):例如://Tableperson:mysql_query(conn,"INSERTINTOMyTableVALUES('1','John','Kennedy')");mysql_query(conn,"INSERTINTOMyTableVALUES('2','Dave','Chappelle')");mysql_query(conn,"INSERTINTOMyTableVALUES('3','Arnold','Schwarzenegger')");//Upto100rowsofdata...我想做的是能够使用C++将变量插入到表中:例

php - PDO/prep statement/whitelisting/set charset,是否足够安全以防止注入(inject)

我正在从扩展mysql转换为PDO,在阅读了SO和其他地方的各位大师的所有资料后,我还有一些疑虑。我想出了以下内容来解决典型查询的sql注入(inject)问题。我只是想知道这是否足够,或者在我将其复制到我的所有应用程序之前,我可能对白名单有点过头了。我不清楚我是否正确地加入了白名单,即我是否也应该以某种方式逃脱。此外,我不确定是否应该为每个查询模拟setAttribute为false还是只为脚本模拟一次。$link=newPDO("mysql:host=$hostname;dbname=$database;charset=utf8",$username,$password);$lin

php - 在使用 $stmt -> fetch() 之前检查结果

这个问题在这里已经有了答案:Whydoesmysqlinum_rowsalwaysreturn0?(1个回答)关闭6年前。可能是个愚蠢的问题。我有以下代码:while($stmt->fetch()){echo"".$name."".$comment."";}只有当$stmt->fetch()返回至少一行(这是一个SELECT查询)时,我才想执行while。但是如果我这样做了if($stmt->fetch())它已经执行过一次,我想避免这种情况。有什么线索吗?提前致谢。

php - fatal error :调用未定义的方法 mysqli_stmt::get_result()

这个问题在这里已经有了答案:Calltoundefinedmethodmysqli_stmt::get_result(10个答案)关闭5年前。我下面的phpMYSQLi不工作,PHP版本5.9$query=$conn->prepare("SELECT*FROMusersWHEREtoken=?LIMIT1");$query->bind_param('s',$cvalue);$query->execute();$result=$query->get_result();$row=$result->fetch_assoc();它给我以下错误:Fatalerror:Calltoundefine

php - mysqli_stmt_bind_result 的奇怪问题

好吧,这让我很烦,我似乎无法在PHP文档中找到任何内容,也无法在Googleresultosphere的任何地方找到任何内容,所以也许有人可以在这里提供帮助。我正在使用准备好的语句、绑定(bind)结果,然后使用这些绑定(bind)结果来填充下拉列表。示例:Selectartist">Addnew...您可能会注意到有些东西有点奇怪。即:$artistResult=mysqli_stmt_bind_result($artist,$artistID,$artistName);在PHPdocumentationformysqli_stmt_bind_result没有任何理由将此结果捕获到变

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