草庐IT

MYSQLI_BOTH

全部标签

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;当我想选择“名称”时,它会回显“名称”而不是来自数据库的结果。如何解决? 最佳答案 占位符?只能在准备语句中用于替换值,不能用于字段名、表名或语句。您正在尝试将其用作

PHP MySQLI 准备好的语句在 get_results() 处中断

我是mysqli准备语句的新手,事实上这是我第一次尝试。我有这段代码,我在每个命令之间放置了echo,它显示aaa和bbb但不显示ccc,我在这里做错了什么?没有出现错误,只是一个空白屏幕:prepare("SELECTtitleFROM`in-the-press`")){$stmt->execute();echo'aaa';$stmt->bind_result($title);echo'bbb';$result=$stmt->get_result();echo'ccc';while($stmt->fetch()){printf("%s%s\n",$title);}echo'ddd';