php mysqli在准备好的语句中重复字段

Meng Hai

我需要将现有项目从 mysql 转换为 mysqli 并使用准备好的语句。

在现有项目中有使用重复变量值的查询。一个这样的例子是: $prev_yr 被使用了 3 次。

$sqlins = "Insert into studentclass (`StudentID`, `ClassID`, `Year`, `Level`, `SNo`, `TermList`, `DateStart`, `DateEnd`) 
            select StudentID, '$prev_cl', '$prev_yr', '$prev_lvl', '', '123456789', '$prev_yr-01-01', '$prev_yr-12-31' from student Where StudentID in ($ids) ";

有没有比这更好的方法:

$sqlins = "Insert into studentclass (`StudentID`, `ClassID`, `Year`, `Level`, `SNo`, `TermList`, `DateStart`, `DateEnd`) 
            select StudentID, '?', '?', '?', '', '123456789', '?-01-01', '?-12-31' from student Where StudentID in (?) ";
$stmt = $mysqli->prepare($sqlins);
$stmt->bind_param("ssssss", $prev_cl,$prev_yr,$prev_lvl,$prev_yr,$prev_yr,$ids);
$stmt->execute();

我想知道是否有一种方法可以为所有 3 次绑定 $prev_yr 一次。

因为还有其他查询可能在一个语句中出现 2 次 $prev_lvl、5 次 $prev_yr 等。这个想法是,当多个变量的重复出现在一个语句中变得很多时 - 在 bind_param 中安排它们变得非常混乱。

有什么解决办法吗?谢谢你。

艺术凤凰

它甚至像那样工作吗,典型的你不会'?-01-01'在查询中这样做我已经有大约 4 年没有使用过 Mysqli,因为我现在每天使用的都是 PDO。但据我所知,当你把它送去准备时,它会吐在?绳子里的人身上

我会拆分它,实际上没有必要进行选择,因为唯一被选择的是您已经拥有的学生 ID。简单地

$insert = $mysqli->prepare("Insert into studentclass (`StudentID`, `ClassID`, `Year`, `Level`, `SNo`, `TermList`, `DateStart`, `DateEnd`)VALUES(?, ?, ?, ?, ?, ?, ?, ?)");

foreach( $ids AS $id ){
    $stmt->bind_param("issssiss", $id, $prev_cl,$prev_yr,$prev_lvl,'', '123456789', $prev_yr.'-01-01',$prev_yr.'-12-31');
    $stmt->execute();
}

我无法测试它,所以希望我把所有东西都放在正确的地方。

正如我所说,我认为您不能绑定到Fields查询一部分,当然也不能绑定到部分字符串中,除了它进行了不需要的选择。只需确保在循环之前准备插入。

只是为了清楚选择实际上从数据库中获得的唯一东西是这个

 select StudentID ... from student Where StudentID in (?) 

其余的添加为“假”列,我不知道它的术语。很难阅读原始查询..

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 PHP MySQLi 准备好的语句中结合 LIKE 和 IN

来自分类Dev

准备好的语句中的$ row [''] PHP

来自分类Dev

从准备好的语句中获取文本(PHP,PDO)

来自分类Dev

在PHP准备好的语句中插入日期

来自分类Dev

为 PHP 用户类创建 mySQLi 准备好的语句

来自分类Dev

带数组字段PostgreSQL&PHP的准备好的语句

来自分类Dev

绑定变量的数量与 php 和 android 中准备好的语句中的字段数量不匹配

来自分类Dev

运行准备好的语句(MySQL / PHP)

来自分类Dev

登录函数PHP的准备好的语句

来自分类Dev

PHP多个准备好的语句

来自分类Dev

SQL 准备好的语句。PHP

来自分类Dev

php - 准备好的语句未执行

来自分类Dev

准备好的语句 PHP OOP

来自分类Dev

从一个准备好的语句中进行许多php mysqli查询,却不知道有多少个参数

来自分类Dev

PHP MySQL在准备好的语句中围绕匿名变量抛出错误

来自分类Dev

PHP MySQL-如何在准备好的语句中插入默认值

来自分类Dev

PHP $ stmt-> num_rows在准备好的语句中不起作用

来自分类Dev

MySQL Select 查询在终端中工作。在 php 准备好的语句中失败

来自分类Dev

在PHP中使用mysqli的“ SELECT”命令的准备好的语句失败

来自分类Dev

PHP-准备好的语句和json_encode

来自分类Dev

php select准备好的语句是什么样的?

来自分类Dev

EXTJS 5和PHP使用准备好的语句创建

来自分类Dev

在准备好的语句PDO PHP中绑定值数组

来自分类Dev

PHP的准备好的语句给我JSON格式错误

来自分类Dev

PHP准备好的语句不起作用

来自分类Dev

PHP将条件追加到准备好的语句

来自分类Dev

准备好的PHP语句未打印出来

来自分类Dev

php select准备好的语句是什么样的?

来自分类Dev

无法获取准备好的语句以在php中打印

Related 相关文章

  1. 1

    在 PHP MySQLi 准备好的语句中结合 LIKE 和 IN

  2. 2

    准备好的语句中的$ row [''] PHP

  3. 3

    从准备好的语句中获取文本(PHP,PDO)

  4. 4

    在PHP准备好的语句中插入日期

  5. 5

    为 PHP 用户类创建 mySQLi 准备好的语句

  6. 6

    带数组字段PostgreSQL&PHP的准备好的语句

  7. 7

    绑定变量的数量与 php 和 android 中准备好的语句中的字段数量不匹配

  8. 8

    运行准备好的语句(MySQL / PHP)

  9. 9

    登录函数PHP的准备好的语句

  10. 10

    PHP多个准备好的语句

  11. 11

    SQL 准备好的语句。PHP

  12. 12

    php - 准备好的语句未执行

  13. 13

    准备好的语句 PHP OOP

  14. 14

    从一个准备好的语句中进行许多php mysqli查询,却不知道有多少个参数

  15. 15

    PHP MySQL在准备好的语句中围绕匿名变量抛出错误

  16. 16

    PHP MySQL-如何在准备好的语句中插入默认值

  17. 17

    PHP $ stmt-> num_rows在准备好的语句中不起作用

  18. 18

    MySQL Select 查询在终端中工作。在 php 准备好的语句中失败

  19. 19

    在PHP中使用mysqli的“ SELECT”命令的准备好的语句失败

  20. 20

    PHP-准备好的语句和json_encode

  21. 21

    php select准备好的语句是什么样的?

  22. 22

    EXTJS 5和PHP使用准备好的语句创建

  23. 23

    在准备好的语句PDO PHP中绑定值数组

  24. 24

    PHP的准备好的语句给我JSON格式错误

  25. 25

    PHP准备好的语句不起作用

  26. 26

    PHP将条件追加到准备好的语句

  27. 27

    准备好的PHP语句未打印出来

  28. 28

    php select准备好的语句是什么样的?

  29. 29

    无法获取准备好的语句以在php中打印

热门标签

归档