草庐IT

mysqli_ping

全部标签

php - 在准备好的 mysqli 语句中多次使用一个参数

是否可以在准备好的mysqli语句中多次使用一个参数只绑定(bind)一次?像这样$stmt=$mysqli->prepare(SELECT*FROMuserWHEREageBETWEEN?1-2AND?1+2);$stmt->bind_param('i',$myAge);我认为这可以通过PDO实现,但我不知道如何使用mysqli实现。 最佳答案 只是为了结束这个问题:答案是否。如果您只想绑定(bind)一个参数一次并在查询中多次使用它,您必须使用PDO,这可能还需要特殊配置。但根据this,似乎有更多理由使用PDO而不是mysql

php - 如何在 PDO(或 MySQLi)查询中正确处理关联数组?

我正在为一个项目使用MySQLi(但可以轻松切换到PDO,请阅读底部的编辑)。我想要的是能够将关联数组处理为mysql查询,而无需手动键入每个键/值对。我知道这可能很简单,但是当涉及到MySQLi/PDO时,我仍处于学习过程中。为了清楚说明我的意思,举个例子:假设我有这个关联数组:$data=array('name'=>'Objective','short_name'=>'OB','generation'=>1);我想要的是创建这样的查询:UPDATEsignalsSET?=?WHEREsid='1'它变成这样的查询(或代替UPDATE、INSERT、SELECT等):UPDATEsi

php - 同一页面上的准备语句和 mysqli_query

我正在使用mysqli预处理语句$email=$_POST['email'];$password=$_POST['password'];$sql="SELECT*fromuserswhereemail=?andpassword=?";$result=$db->prepare($sql);$result->bind_param('ss',$email,$password);$result->execute();由于帖子值来自用户,我遵循此方法但是例如..我想像所有用户一样从数据库中获取一些东西SELECT*fromuserswhereactive=1我应该在这里也使用准备好的语句还是简单

php - MySQLi - 属性访问还不允许

这个问题在这里已经有了答案:mysqli+xdebugbreakpointafterclosingstatementresultinmanywarnings(6个答案)关闭2年前。我在尝试关闭mysqli连接时收到此警告“尚未允许访问属性”。为什么?$mysqli=newmysqli($database["dbUri"],$database["dbUserName"],$database["dbPassword"],$database["dbSchema"],$database["dbPort"]);$mysqli->autocommit(FALSE);$con=$mysqli;$ro

php - 给出警告 : mysqli_free_result() expects parameter 1 to be mysqli_result, bool 值

这个问题在这里已经有了答案:Whattodowithmysqliproblems?Errorslikemysqli_fetch_array():Argument#1mustbeoftypemysqli_resultandsuch(1个回答)INSERTqueryproduces"Warning:mysqli_num_rows()expectsparameter1tobemysqli_result,booleangiven"(3个答案)关闭2年前。为什么我会收到此错误消息:Warning:mysqli_free_result()expectsparameter1tobemysqli_re

php - 非静态方法 mysqli::init() 不能静态调用

http://php.net/manual/en/mysqli.init.php$ConnectionResource=mysqli::init();上面的代码失败了:fatalerror:无法静态调用非静态方法mysqli::init()怎么会? 最佳答案 这只是手册中使用的愚蠢符号,显然他们使用class->property和class::method而没有考虑实际语言及其与instance-之间的区别和类成员访问(->与::)。见示例1http://www.php.net/manual/en/mysqli.real-conne

php - mysqli 准备好的语句不转义哪些字符?

我正在尝试强化我的一些PHP代码并使用mysqli准备好的语句来更好地验证用户输入并防止注入(inject)攻击。我不再使用mysqli_real_escape_stringasitdoesnotescape%and_.但是,当我将查询创建为mysqli准备语句时,同样的缺陷仍然存在。该查询根据用户名提取用户盐值。我会对密码和其他查找执行类似的操作。代码:$db=newsitedatalayer();if($stmt=$db->_conn->prepare("SELECT`salt`FROMadminsWHERE`username`LIKE?LIMIT1")){$stmt->bind_

php - 何时调用 mysqli::close

我应该什么时候调用mysqli::close?我从来没有使用if语句来检查bind_param()、prep()和execute()是否成功。我应该在方法(下面)的末尾调用$stmt->close()吗?或者我应该在每个条件之后调用它确保我关闭数据库连接,即使进程在某个阶段失败,例如绑定(bind)参数。publicfunctionfunction_name($id,$new_id){$query="UPDATETABLESETname=?WHEREfield=?";if($stmt=$this->prepare($query)){if($stmt->bind_param("is",$

php 切换到 mysqli : num_rows issue

我最近开始为MySQL改进的扩展更新一些代码,到目前为止一直很成功://oldcode-works$result=mysql_query($sql);if(mysql_num_rows($result)==1){$row=mysql_fetch_array($result);echo$row['data'];}//newcode-doesn'twork$result=$mysqli->query($sql)ortrigger_error($mysqli->error."[$sql]");if($result->num_rows==1){$row=$result->fetch_array

PHP MySQLi 准备语句 - SELECT

我的SELECT语法有问题。代码:$stmt=$this->con->prepare("SELECT?FROM`shop_items`WHERE`id`=?");$stmt->bind_param("si",$what,$itemsId);$stmt->execute();$stmt->bind_result($res);$stmt->fetch();echo$res;当我想选择“名称”时,它会回显“名称”而不是来自数据库的结果。如何解决? 最佳答案 占位符?只能在准备语句中用于替换值,不能用于字段名、表名或语句。您正在尝试将其用作