草庐IT

mysqli_stmt_bind_param

全部标签

php - mysqli bind_param 和受影响的行错误

我是mysqli的新手,我已经查看了PHP手册等,但没有任何效果。我不太清楚哪里出了问题。我不断收到此错误:Warning:mysqli_stmt::bind_param()[mysqli-stmt.bind-param]:Numberofvariablesdoesn'tmatchnumberofparametersinpreparedstatementinC:\xampp\htdocs\new1\template.phponline165还有这个Warning:mysqli_stmt_affected_rows()[function.mysqli-stmt-affected-rows

PHP 准备语句...将变量绑定(bind)为 REGEXP 中的数字范围?

$query="SELECT*FROM`mytable`WHERE`file`REGEXP'[:val-9]'";$stmt=$dbh->prepare($query);$stmt->bindValue(':val','1');//Ihavealsotried1withoutquotes$stmt->execute();抛出这个错误:Syntaxerrororaccessviolation:1139Goterror'invalidcharacterrange'fromregexp这有可能吗.. 最佳答案 占位符只能用在值可以出现的地

php - 我是否正确使用 mysqli_real_escape_string?

我正在使用mysqli_real_escape_string的OOP方法转义字符串。我将输入的内容保存到session变量中以确保它正确转义。它似乎正确转义,但是当我检查输入数据库的内容时,我没有看到单引号和双引号前的斜线。所以在浏览器中我回显:Array([formContent]=>I\'malwayshere!)但是在数据库中我看到:I'malwayshere!这是否意味着我的代码某处有问题? 最佳答案 不,这很正常。mysqli_real_escape_string自动为您转义单引号。当你有字符串时,I'malwaysher

php - Mysqli准备语句(SQL注入(inject)预防)

停止使用已弃用的mysql_*函数后,我切换到mysqli。但是后来,我注意到非准备语句对于SQL注入(inject)是不安全的。然后,我再次更改了我的代码。我所拥有的是以下函数,它检查数据库中是否存在变量$ID并打印该行的title的值:functionshowPostTitle($ID,$mysqli){$result=$mysqli->query("SELECTID,titleFROMblogwhereID=$ID");$row=$result->fetch_array(MYSQLI_BOTH);echo$row['title'];}我改成了这样:functionshowPost

php - 在 mysqli 中使用 'config.php' 文件

我最近被告知停止使用mysql_query(),而是改用mysqli()。不用说,我在代码中进行这些更改时遇到了困难。我很想修复我目前拥有的东西,但是我也在寻找最有效(阅读最少输入)的方式来循环下面的示例。在我的config.php文件中connect($host,$user,$password,$database);if(mysqli_connect_errno()){exit('Connectfailed:'.mysqli_connect_error());}?>在我的index.php中$i=0;$getFundsQuery="SELECT*FROMfund";$getFunds

php - mysqli 预处理语句 - 不要更新 NULL 值

我有一个准备好的语句来更新几个字段。我从公式中获取数据,但并非所有字段都是必需的。所以有可能有些字段没有设置。我将它们默认设置为NULL。现在我不想用NULL覆盖旧值。如果它为NULL,我如何告诉MySql不要更新该值?$insert_stmt=$mysqli->prepare("UPDATEmembersSETusername=?,email=?,$password=?,$random_salt=?,level=?,customerID=?,name=?,surname=?,phone=?,quantities=?WHEREid=?");$insert_stmt->bind_para

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

php - mysqli php 查询更新不工作,不返回错误

我写了下面的代码:publicstaticfunctionupdateUser($userid,$username){$query='UPDATEusersSETusername=?WHEREid=?';$statement=$GLOBALS["DB"]->prepare($query);$statement->bind_param('is',$userid,$username);$statement->execute();$statement->store_result();if($statement->affected_rows==1){return1;}else{return$s

php - 如何在 Mysqli 准备语句中使用 PHP 常量

我正在构建一个包含大量数据库查询的API。为了避免在每个查询中重复一些预先建立的值,我创建了一些PHP常量。但是我不确定将它们包含在Mysqli准备好的语句中的正确方法。我知道常量不能通过引用传递。所以我想知道我是否应该为包含常量的查询创建一个变量,或者我是否可以直接将带有常量的字符串传递给prepare()函数。所以我这样做是没问题的,还是我应该创建一个变量并在调用prepare()之前将字符串存储在那里?$stmt=$this->conn->prepare("SELECTcityFROMmastersWHEREemail=?ANDestado!='".STATE_INACTIVE.

php - pdo 动态绑定(bind) asc/desc 顺序

假设我有2个仅顺序不同的pdo语句(asc与desc)$stmt1=$po->prepare("SELECT*FROMtabnameWHEREcateg=:categORDERBYfield1DESC");$stmt2=$po->prepare("SELECT*FROMtabnameWHEREcateg=:categORDERBYfield1ASC");有没有一种方法可以动态绑定(bind)ASC/DESC,这样我就可以只有1个stmt$order="ASC";//or"DESC"$stmt=$po->prepare("SELECT*FROMtabnameWHEREcateg=:cat