prepared-statement相关内容
我试图将一个字符串传递到我的 MySQLi 准备好的语句中,但它给了我错误: 在 MySQLi 中不能通过引用传递参数 相关代码如下: $kv = json_encode(array($key => $value));$stmt->prepare("插入规则(application_id, ruletype, rule_name, rule_info) 值(?, ?, ?, ?);"
..
我有这个问题需要澄清.我阅读了一些文档和评论,但仍有一些不够清楚. 我知道 PDO 提供了更多驱动程序,如果您更改数据库类型,这当然是一个加分项. 正如在另一篇文章中所说,PDO 不提供真正的预处理语句,但 mysqli 提供,因此使用 MYSQLI 会更安全 基准看起来很相似,(没有自己测试,而是在网上检查了一些基准) 面向对象对我来说不是问题,因为 mysqli 正在迎头赶上.但是
..
我在mysqli_stmt_execute 之后不知道什么时候调用什么,遇到了问题你怎么知道什么时候打电话 mysqli_stmt_bind_result mysqli_stmt_store_result mysqli_stmt_fetch 解决方案 mysqli_stmt_bind_result() 告诉 mysqli 当你获取一行时你想填充哪个变量,但它没有 fetch()
..
在完成准备好的 mysqli 时,我试图澄清 $stmt->close() 和 $stmt->free_result() 之间的区别强>声明. 到目前为止我使用: $mysqli = new mysqli(host,user,password,database);$stmt = $mysqli->prepare(sql 语句);[...]$stmt->free_result();$mysq
..
我制作了一个脚本,用于创建一个原始查询字符串,然后在一个语句中插入数百行.它可以工作,但不提供准备好的语句所提供的保护.然后我修改了我的脚本以添加准备好的语句.但是,它可以工作,但速度要慢得多.与原始查询脚本相比,带有准备好的语句的脚本插入行所需的时间要长得多,因为脚本会一次运行一行准备好的插入语句,而不是一次插入数百行. 这是准备好的语句代码的片段: for( $j = 0; $j bi
..
我在将带有通配符的 LIKE 绑定到 MySQLi 中准备好的语句时遇到问题.我尝试了以下两种方法,如下所示 &concat.(更新为@fancyPants 输入) 有没有办法在绑定发生后查看自己的 SQL 语句? 如何正确绑定以获得我想要的结果? 它可以在没有 LIKE 语句的情况下工作. 我只能从使用某个搜索词中提取数据.我的代码有问题吗? $str = $_POST
..
我试图在查询中输出从数据库中获取的变量,但没有返回任何内容.使用 MYSQLi 准备好的语句. 请看下面的代码: $stmt = $con->prepare(“SELECT first_name, last_name FROM transactions WHERE order_id = ?");$stmt->bind_param('i', $order_id);$stmt->execute
..
我在使用 mysqli_stmt 准备函数时遇到了一个小问题.这是我的查询: $params = 数组("西西","some_string",5000,“日期_添加 DESC");$sql = "选择 *从场景WHERE scene_title 喜欢?ANDscene_id>?订购者?限制 ?"; 现在,当我像这样将参数绑定到数组时(我实例化了一个有效的 mysqli_stmt 对象): c
..
我在尝试修改某些表时不断收到此错误.这是我的代码: /** mysqli->autocommit(FALSE);//将客人插入客人,人,订单,座位$menu_stmt = $this->mysqli->prepare("SELECT id FROM menu WHERE姓名=?");$menu_stmt->bind_param('s',$menu);//$menu_stmt->bind_resu
..
我对以下语法错误感到头疼.我正在尝试将内爆数组绑定到准备好的语句中,但出现以下语法错误: 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在“?"附近使用的正确语法.在第 1 行 这是我的代码.谁能看出我哪里出错了? prepare("DELETE FROM email_addresses WHERE email_addresses IN ?")) {$
..
我想从数据库中获取行数,但是当我尝试这样做时,$g_check 变量将等于 0 并且我的代码将回显$sugg_title 消息位于 else 语句中.但是在数据库中有 4 个插入的组,所以 num_rows 属性应该返回 4. $sql = "SELECT DISTINCT gp.logo, gp.nameFROM gmembers AS gmLEFT JOIN 组 AS gp ON gp.na
..
我目前使用已弃用的代码从用户那里获取数据,如下所示: /* 检索 */$lastName = $_POST['lastName'];$firstName = $_POST['firstName'];$examLevel=$_POST['level'];/* 连接 */$dbc=mysql_connect("localhost", "user", "passw") or die('Error连接到
..
我有一个存储过程 IsUserPresent,例如: DELIMITER $$创建程序 IsUserPresent(在用户标识 varchar (150) 中,out isPresent 位)开始SET isPresent=0;选择 COUNT(*)INTO现时FROM users_tableWHERE users_table.userid=userid;完$$ 我想使用 mysqli 准备好
..
我正在为 uni 开发一个项目,并且一直在 testing server 上使用以下代码从基于 的表中获取所有设备user_id: 公共函数 getAllDevices($user_id) {$stmt = $this->conn->prepare("SELECT * FROM devices WHERE primary_owner_id = ?");$stmt->bind_param("i",
..
应该是一个足够简单的问题: 如果我使用 mysqli 准备好的语句,我还需要使用 mysqli_real_escape_string() 吗? 这是必要的,还是一个好主意? 谢谢尼科 解决方案 没有.如果您使用准备好的语句,则转义已为您完成.
..
我在 PHP5 中使用 mysqli_stmt::bind_param 绑定布尔值时遇到问题. SQL 查询如下: 插入`nvp_notes` (subject,messageid,receivedate,read) 值 (?,?,?,?) 其中 'read' 是一个 tinyint,可以是 0 或 1,因为我在使用 mysqli 时遇到了 bit 问题.所以我在 bind_param
..
尝试学习新东西 - 特别是尝试选择使用 MySQLi 还是 PDO 用于将来使用 MySQL 的项目 - 我偶然发现了 这个页面 显示了我可用的选项概览. 本页底部的表格比较了与 mysql 通信的三种主要方法的功能.在“API 支持客户端准备好的语句"行中,它表示 PDO 支持这一点,而 MySQLi 不支持. 我知道准备好的语句是什么.这个问题的答案是我认为服务器端准备好的语句的一
..
我遵循了一堆关于在准备好的语句中使用 SELECT 的不同示例,但没有返回任何内容.编辑我已将代码更改为如下所示: $date1 = 2012-01-01;$date2 = 2012-01-31;$sql_con = new mysqli('db', 'username', 'password', 'database');if($stmt = $sql_con->prepare("SELECT
..
我正在尝试进行用户名搜索 [我似乎已经完成并正在工作] 但是当您搜索用户名时,会显示有关该帐户的信息.比如我搜索了virtualAnon,他的名字和first_name等信息就会出现在他的用户名后面. 我试图通过替换 $query = "SELECT username FROM users WHERE username like 来修复它?LIMIT 1"; to $query = "SEL
..
这是我的情况: $sql = '更新用户设置密码 = ?哪里用户名=?AND 密码 = ?';如果($stmt->准备($sql)){$stmt->bind_param('sss', $newPass, $_SESSION['username'], $oldPass);$stmt->execute();} 现在,如何查看 UPDATE 查询是否成功执行?更准确地说,我如何查看旧密码和用户名是否
..