草庐IT

mysqli_stmt_bind_param

全部标签

php - 构建 mysqli 查询?

如果我有查询selectusers.user_id,users.fname,users.lname,bios.bio,groups.groupidfromusersLEFTJOINbiosonusers.user_id=bios.userid然后我想根据条件添加另一个表,然后在末尾添加一个where语句。问题是因为当我绑定(bind)参数时它说“变量数与准备语句中的变量数不匹配”。我将如何解决这个问题?干杯。示例:$info="selectusers.user_id,users.fname,users.lname,bios.bio,groups.groupidfromusersLEFT

php - Mysqli 总是返回连接成功

在我所有的php页面上,我都包含了以下数据库连接代码无论我做什么(例如输入错误的密码或输入错误的文件路径),它总是回显“成功”。我已经尝试使用try/catch来处理错误,在新的mysqli前面放置一个@,使用面向对象的If($mysqli->connect_error)。我做什么都不会返回失败当我放echo'Success...'.$mysqli->host_info."\n";我得到的不是echosuccessSuccess...LocalhostviaUNIXsocket谁能告诉我为什么我总是收到这个虚假的成功消息?编辑:我最终要寻找的不是我用于开发的每条php错误消息(即ini

PHP Pthreads - 使用 mysqli

我第一次尝试在我的Web应用程序中使用pthreads。我有pthreads为简单的测试用例工作,但是我无法让pthreads中的mysql查询工作。这是我的php文件:classSqlThreadextendsThread{private$dbc;public$log;public$return;publicfunction__construct(){$this->dbc=mysqli_connect("localhost","root","rootpassword","my_database");$this->log="(".__LINE__.")constructfinished

php - 成功插入单行后 $mysqli->info 为空

在使用单个插入语句插入多行后,我从$mysqli->info得到了预期的行为。var_dump($mysqli->info);string'Records:1246Duplicates:0Warnings:0'(length=41)插入一行后,$mysqli->info返回NULLvar_dump($mysqli->info);nullvar_dump($mysqli->affected_rows);int1mysqli_info()返回空字符串var_dump(mysqli_info($mysqli))string''(length=0)我找不到任何关于此行为的引用资料!我希望在像这

php - mysqli_fetch_row 不返回结果,但 mysqli_fetch_assoc 返回结果

我正在为一项作业编写一个简单的php页面,其中一个标准是同时使用mysqli_fetch_assoc和mysqli_fetch_row。我对两者使用相同的查询:当我在我的数据库中运行此查询时,它按预期返回3行。在我的网页中,我首先使用mysqli_fetch_assoc($result),它呈现了一个包含预期信息的无序列表。然后我继续使用mysqli_fetch_row($result)来显示更多信息,但是第二个while循环不产生任何表数据(只是第th个标签的内容)。ThePlayers";}?>TheStatsPlayerBattingAvgHomerunsRBIs//DATABE

php - Yii2 : Can I bind an array to an IN() condition in join?

我会尝试下面的查询,但不确定是否可以防止sql注入(inject)?$status=[1,2,3];$param=implode(',',$status);$rows=(new\yii\db\Query())->select('*')->from('user')->leftJoin('post',"post.user_id=user.idANDpost.some_column=$valueANDpost.statusIN($param)");->all();returnexpectedresultsbutmaybeoccursqlinjection.MyINconditionlookl

php - PDO::PARAM_INT 是多余的吗?

当与$db->quote()函数一起使用时,PDO::PARAM_INT是否执行任何功能?例如$db->quote($user['id'],PDO::PARAM_INT)?似乎是这样,因为即使是字符串输入也会通过。更不用说它保留整数周围的引号。我为什么要使用它? 最佳答案 它没有任何效果,因为毕竟您正在运行quote函数。它被引号括起来是很自然的。PDO::PARAM_INT在其他上下文中可能更重要,例如准备好的语句,在这些上下文中它的实际处理方式与字符串不同。quote可能更关心不应引用或应以不同方式引用的其他数据类型,例如PDO

php - 如果在循环中使用 MySQLi 准备语句,我什么时候调用 bind_param?

我正在尝试学习如何在MySQLi中使用准备好的语句来插入数据。尽管准备好的语句因其重复高效地执行类似语句的能力而受到称赞,但我似乎找不到使用MySQLi在循环中执行多个语句的示例。我特别对以下内容感到困惑:是在我的循环之前还是在我的循环中调用bind_param是否在调用bind_param之前或之后为我的变量赋值大多数关于预处理语句的教程都使用PDO。使用PDO,可以将一组参数值传递给execute,从而无需调用bindParam。MySQLi不是这种情况。PHP手册mysqli_prepare条目有一个显示以下操作顺序的示例:为变量赋值准备声明绑定(bind)变量执行关闭根据以上判

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 - 从 mysqli_query 获取成功/失败响应

我正在从用户那里收集信息,然后将它们添加到表格中。$insert="INSERTINTOjos_activeagents(RINGPHONE,AGENTUID,FNAME,LNAME)VALUES('(618)717-2054','".$result['AGTBRDIDMM']."','".$result['AGTFNAME']."','".$result['AGTLNAME']."')";$set=mysqli_query($link,$insert);AGENTUID是唯一键。如果用户尝试使用重复的唯一key提交,我会收到错误消息(当然)。现在,我如何知道是否以及何时发生错误,然后