草庐IT

prep_stmt

全部标签

php - 调用未定义的方法 mysqli_stmt::get_result() 和安装的 mysqlnd

如标题所示,我在运行PHP5.4版的共享托管服务器上提供了mysqlnd。当我尝试调用mysqliget_result()函数时,出现此错误。我已经和托管服务提供商谈过好几次了,最近他们让我尝试运行#/opt/ntphp/php54/bin/php-i|grep-imysqlnd我跳上ssh并运行这个命令,它给出了这个:mysqlndmysqlnd=>enabledVersion=>mysqlnd5.0.10-20111026-$Id:c85105d7c6f7d70d609bb4c000257868a40840ab$Loadedplugins=>mysqlnd,example,debu

php - Mysqli 抛出 "Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given"

这个问题在这里已经有了答案:Whattodowithmysqliproblems?Errorslikemysqli_fetch_array():Argument#1mustbeoftypemysqli_resultandsuch(1个回答)关闭2年前。我知道这段代码可以在我的另一个网站上运行,但它今天不起作用。我收到三个警告:Warning:mysqli_stmt_bind_param()expectsparameter1tobemysqli_stmt,booleangivenin/homepages/14/d248783986/htdocs/subdomains/clients.bi

PHP 警告:mysqli_stmt::bind_param():变量数与准备语句中的参数数不匹配

不确定为什么我会收到此PHP警告消息。准备好的语句中似乎有四个参数,bind_param()中也有四个变量。谢谢你的帮助!if($stmt=$mysqli->prepare("SELECTurl,month,year,cover_imageFROMback_issuesORDERBYyearDESC,monthDESC")){$stmt->bind_param("ssis",$url,$month,$year,$cover_image);$stmt->execute();$stmt->bind_result($url,$month,$year,$cover_image);$stmt->

php - 多次调用 $stmt->bind_param

我处于一种情况,我想构建一个代码,以这种格式获取$bindParam变量:$bindParams=[$type1=>$param1,$type2=>$param2,...]我想构建一些代码,将这些参数动态添加到准备好的语句中。这是我到目前为止构建的代码:$mysql=newmysqli("localhost","root","","db1");$stmt=$mysql->prepare($sql);foreach($bindParamsas$type=>$data){$stmt->bind_param($type,$data);}$stmt->execute();$result=$st

php - PHP 中的 $stmt 是什么

$stmt到底是什么,它的用途是什么?它代表什么..我正在学习使用准备好的语句的教程,并在手册中查找了stmt:http://php.net/manual/en/class.mysqli-stmt.php并看到它是一个“代表准备好的语句”的类-我猜这是一个准备好的sql语句,您将变量插入其中。虽然我看不出这个id与将sql语句存储为字符串然后在需要时操作该字符串以添加变量有何不同? 最佳答案 “$stmt”显然(我认为)代表“声明”。作为一个变量名,它是任意的,您可以随意命名该变量。$stmt非常地道。这样的准备好的语句是数据库的一

php - mysqli_stmt_bind_param SQL注入(inject)

使用preparedstatements和mysqli_stmt_bind_param是否还有注入(inject)风险?例如:$malicious_input='bob";droptableusers';mysqli_stmt_bind_param($stmt,'s',$malicious_input);在幕后,mysqli_stmt_bind_param将此查询字符串传递给mysql:SET@username="bob";droptableusers";或者它是否通过API执行SET命令,或者使用某种类型的保护来防止这种情况发生? 最佳答案

php - 动态绑定(bind)mysqli_stmt参数再绑定(bind)结果

我正在尝试动态绑定(bind)mysql_stmt参数并在关联数组中获取结果。我在StackOverflow上找到了这篇文章,其中Amber使用以下代码发布了一个答案:原帖:Howtomakeapropermysqliextensionclasswithpreparedstatements?“假设您实际上想要编写自己的版本(而不是利用其他答案建议的现有库之一——这些也是不错的选择)...这里有几个函数,您可能会发现检查它们很有用。第一个允许您将查询结果绑定(bind)到关联数组,第二个允许您传入两个数组,一个是有序的键数组,另一个是这些键的数据关联数组,并将该数据绑定(bind)到准备

mysqli - php5.3 - mysqli_stmt :bind_params with call_user_func_array warnings

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Isitpossibletopassparametersbyreferenceusingcall_user_func_array()?我有以下代码行在PHP5.1中有效,但在PHP5.3中无效。$input=array('ss','john','programmer');call_user_func_array(array($mysqli_stmt,'bind_param'),$input);在PHP5.3中,我收到以下警告消息:Warning:Parameter2tomysqli_stmt::bind_pa

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

这个问题在这里已经有了答案:Calltoundefinedmethodmysqli_stmt::get_result(10个答案)关闭7年前。自从我将我的网站移至新虚拟服务器后,我总是收到此错误消息Fatalerror:Calltoundefinedmethodmysqli_stmt::get_result()这些代码行工作正常$mysql=newmysqli($db_host,$db_user,$db_password,$db_database);$partys=NULL;$res_partys=$mysql->query("SELECT*FROMpartyORDERBYbegin"

php - mysqli_stmt::bind_param():类型定义字符串中的元素数量与绑定(bind)变量的数量不匹配

所以我有一个非常令人头疼的查询,我需要执行涉及65表单输入的查询,这些表单输入需要使用mysqli准备好的语句注入(inject)到数据库中。我遇到的问题是它说我尝试调用bind_param的变量的数量与我正在使用的“s”的数量不匹配。我数了十几次,看不出哪里错了。有65个变量和65个“s”。有人能看到我遗漏的东西吗?或者我是否以不正确的方式使用了bind_param方法?//Preparingourquerystatementviamysqliwhichwillauto-escapeallbadcharacterstopreventinjection$query3='INSERTIN