PHP

与普通 mysqli 语句相比,使用准备好的语句的优势是什么?

我已经完成了我的研究并决定在我的查询中使用准备好的语句,我只问是否有什么我应该知道的,关于切换到普通 mysqli 查询到准备好的语句的好坏. 我也不明白为什么不需要转义坏字符的逻辑? 解决方案 仍然需要转义坏字符,但库会自动为您绑定的所有参数执行此操作.它只是稍微方便一些,并且可以防止程序员忘记清理值. 但是,请注意,这种自动化仅限于参数! 以下查询是安全的,因为 bi ..
发布时间:2021-12-25 10:18:26 PHP

MySQLi:查询 VS 准备

mysqli 中的prepare 和query 有一点我不太明白. 这个是使用mysqli::query来处理查询的,众所周知它缺乏安全性: 公共函数fetch_assoc($query){$result = parent::query($query);//$result = self::preparedStatement($query);如果($结果){返回 $result->fetch ..
发布时间:2021-12-25 10:18:19 PHP

准备好的语句 - 行数

我只是想弄清楚如何确定行数,然后在 HTML 中显示该数字. 我准备好的语句如下所示: if($stmt = $mysqli -> prepare(“SELECT field1, field2, field3 FROM table WHERE id= ?ORDER BY id ASC")){/* 绑定参数, s - string, b - blob, i - int, etc */$stm ..
发布时间:2021-12-25 10:18:11 PHP

utf 8 - PHP 和 MySQLi UTF8

我的表字符集是 utf8,它的排序规则是 utf8.现在我有这个代码: $mysqli = new mysqli("localhost", "root", "", "Amoozeshgah");如果(mysqli_connect_errno()){printf("连接失败:%s\n", mysqli_connect_error());}if (!$mysqli->set_charset("ut ..
发布时间:2021-12-25 10:18:02 PHP

带数组的准备语句

我有一个函数可以做一个简单的插入,但我试图通过传递一个数组来使该方法更加健壮.这是我传递给它的数组: $form_data = 数组(“sort_order"=>$_POST['sort_order'],"name"=>$_POST['page_name'],"text"=>$_POST['page_text'],“图像"=>$_POST['page_image'],“meta_desc"=> ..
发布时间:2021-12-25 10:17:51 PHP

如何在 CentOS 上配置 php 以启用 pdo 并包含 mysqli?

CentOS 上的 PHP 5.3.3 版(x86_64,RHEL 6) 显然,我的 PHP 安装配置为出于某种原因排除 Mysqli 并禁用 PDO.因此,当我尝试从 shell 使用 php 命令时,我相信这是导致它们无法工作的原因.我可以通过 HTTP 加载 mysqli 和 pdo 就好了,但它们不能从 shell 工作.我如何启用这些组件以及这样做的风险是什么? 配置命令: ..
发布时间:2021-12-25 10:17:40 PHP

执行 mysqli_query 时遇到问题

问题来了:我今天开始交换使用mysqli.没什么大不了的,只需要改变一些陈述.一切顺利,没有错误......除了我根本无法执行任何查询.我对我的语法进行了两次和三次检查.我什至开始创建它应该返回错误的情况(尝试将其插入到不存在的表或值超过列限制或不匹配类型的表)和......什么都没有.它不返回错误,也不写入.如果参数 1 不是 mysqli 类型,它会报错. 相关代码如下: $con = ..
发布时间:2021-12-25 10:17:34 PHP

PHP在后台向DB中插入批量数据

我有一个向客户发送批量消息的表单,点击提交按钮,它在发送前将消息保存在数据库中,但插入过程需要大约 2 分钟才能插入 3000 条记录,如何我可以减少插入时间或者我如何在后台处理数据以避免用户等待进程完成.我已经尝试了几种堆栈溢出的选项,但都没有成功.我在共享主机上.这是我的代码 ..
发布时间:2021-12-25 10:17:13 PHP

将其从 MySQL 更改为 MySQLi?

我决定改用 MySQLi,因为有人告诉我它更安全.我真正感到困惑的是新的扩展.我尝试在每个 mysql 之后添加 'i',但这给了我一大堆错误.我在 PHP 手册中查找了为什么会发生这种情况,还有一大堆其他功能.老实说,我不知道如何转换.你能帮我吗? include("dbinfo.php");mysql_connect($c_host,$c_username,$c_password);@mys ..
发布时间:2021-12-25 10:17:05 PHP

在非对象 MySQLi 上调用成员函数 bind_param()

好的,所以我正在尝试更新博客条目,当我尝试运行脚本时,我正在调用非对象上的成员函数 bind_param().我已经做了大量的研究,想看看我是否可以自己修复它,但我一定遗漏了一些东西. prepare("UPDATE blogentries SET标题 = ?,图像 = ?,标题 = ?,文章 = ?哪里 id = ?");$stmt->bind_param('ssssi',$_POST['标题 ..
发布时间:2021-12-25 10:16:45 PHP

何时调用 mysqli::close

我应该什么时候调用 mysqli::close?我从来没有使用过 if 语句来检查 bind_param()、prep() 和 execute() 是否成功.我应该在方法结束时调用 $stmt->close() 吗(下面).或者我应该在每个条件之后调用它以确保我关闭数据库连接,即使该过程在某个阶段失败,例如绑定参数. 公共函数function_name($id,$new_id){$query = ..
发布时间:2021-12-25 10:16:37 PHP

使用准备好的语句检查电子邮件是否已经在数据库中

我正在尝试将我的代码更改为来自 mysql 的 msqli 准备语句.我不确定如何调整我目前可以检查数据库中是否已有电子邮件的代码.以下是我目前正在使用的有效代码.如何将其更改为准备好的语句并获得相同的结果? //如果email等于数据库中已有的email,则显示错误信息if(mysql_num_rows(mysql_query("SELECT * FROM users WHERE email ..
发布时间:2021-12-25 10:16:31 PHP

mysqli::get_result 有什么问题?

我有以下代码: $postId = $_GET['postId'];$mysqli = new mysqli('localhost', 'username', 'database', 'name_db');mysqli_report(MYSQLI_REPORT_ALL);$stmt = $mysqli->stmt_init();$stmt->准备("选择 *发件人哪里 postId = ?"); ..
发布时间:2021-12-25 10:16:20 PHP

为什么 MySQLi 准备了语句?

在 MySQLi 中使用准备好的语句有什么好处? 如果唯一的目的是保护查询,那么使用类似 mysqli_real_escape_string 之类的东西来清理查询不是更好,而不是为每个查询编写这么多行代码(比如 prepare、bind_param、执行、关闭等)? 解决方案 准备语句不仅仅是为了代码安全.它可以帮助 SQL 服务器解析您的语句并为您的查询生成执行计划. 如果您 ..
发布时间:2021-12-25 10:16:03 PHP

PHP mysqli bind_param 文本类型

对于将用户评论转储到 MySQL 表中的反馈表单,我不确定用户提供的反馈文本使用哪种 bind_param 类型(MySQL 字段类型 = 文本) function sql_ins_feedback($dtcode,$custip,$name,$email,$subject,$feedback){全局 $mysqli ;if($stmt = $mysqli->prepare("INSERT IN ..
发布时间:2021-12-25 10:15:56 PHP

使用 MySQLi 从 HTML 表单向数据库插入多行

我正在尝试制作一个使用数组的表单,因此一旦它被提交和处理,多行就会插入到我的数据库中.我的主程序比下面更复杂,但我无法让它工作,所以我决定创建一个简单的小程序来更好地理解基本语法,然后将这些技术应用于主程序.我已经使用折旧的 MySQL 让它工作了,但是将它转换为 MySQLi 会导致问题,我想知道我是否可以获得帮助. 我的表单是这样设置的 多行插入测试表单 ..
发布时间:2021-12-25 10:15:49 PHP

Mysqli 准备语句从数组动态构建 INSERT 查询

我正在尝试用 PHP(不是 OOP)开发我的函数,以创建一个 CRUD.目标是对任何表使用相同的功能,但我已经陷入第一个.不知道该怎么做. 我现在拥有的: //避免注入的函数功能验证($link,$field){$valid = mysqli_real_escape_string($link, $field);$valid = strip_tags($valid);返回 $valid;}/ ..
发布时间:2021-12-25 10:15:41 PHP