在所选参数中使用预准备语句

索伦

我已准备好要防止SQL注入的语句,定义为:

            if($stmt1 = $db->prepare("INSERT INTO `group_messages`(`group_message_sync_id`, `from_user_sync_id`, `to_user_sync_id`, `to_group_sync_id`, `sent_dt`, `read`, `read_dt`, `message_text`, `shared_campaign_id`, `shared_campaign_location_id`) 
                                    SELECT
                                        (SELECT 
                                         CASE WHEN
                                         max(group_message_sync_id) is null
                                         then 0
                                         else max(group_message_sync_id)
                                         end + 1
                                         from group_messages)
                                    , ?
                                    , b.user_sync_id
                                    , b.group_sync_id
                                    , NOW()
                                    , 0
                                    , 0
                                    , ?
                                    , ?
                                    , ?
                                    from users_groups b
                                    WHERE 
                                            b.status = 1
                                        and b.group_sync_id = ?
                                        and b.user_sync_id != '?;"))
            {
                $stmt1->bind_params("ssssss",$userId,$message,$campaign,$location,$toGroupId,$userId);
                $stmt1->execute();
                $stmt1->close();

如您所见,我将6个参数传递给该语句

但是,围绕此语句的if-else子句每次都会失败。

我该如何工作?

莫波

您查询中的错误是您输入了'b.user_sync_id != '?;您必须将其更改为:b.user_sync_id != ?;

关于您的有关报告错误的评论中的问题,最好的方法是使用异常

$db = new PDO('<params>');

//this will make PDO throws exceptions in case of errors 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

try 
{    
    $stmt1 = $db->prepare('<your query>');
    $stmt1->execute();    
}
catch (PDOException $e) 
{
    //here you handle the exception, i.e die and show the message
    die( PDO Exception: ' . $e->getMessage() );
}

这样,当发生语法错误时,PDO将启动PDOException您的catch语句捕获的a 例如,您可以在语句内部打印异常消息。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PHP中使用MySQLi预准备语句,获取“预准备语句中没有为参数提供数据”

来自分类Dev

在python中使用带有MySQL的预准备语句

来自分类Dev

在MySQL预准备语句的WHERE子句中使用通配符

来自分类Dev

在MySQL预准备语句的WHERE子句中使用通配符

来自分类Dev

在准备好的语句参数中使用表列

来自分类Dev

在准备好的语句参数中使用表列

来自分类Dev

如何在php中的Postgresql中使用白名单和预准备语句?

来自分类Dev

在带绑定变量的预准备语句中使用AES_ENCRYPT

来自分类Dev

如何在预准备语句(在jsp中)中使用jquery变量?

来自分类Dev

JDBC如何在带where子句的预准备语句中使用占位符?

来自分类Dev

PHP:预准备语句

来自分类Dev

PHP:预准备语句

来自分类Dev

不知道有多少参数时的预准备语句

来自分类Dev

预准备语句中的参数是否包含连字符(-)?

来自分类Dev

如何通过预准备语句使用sql函数CONCAT

来自分类Dev

使用变量的Python和预准备的SQL语句

来自分类Dev

不使用get_result()的预准备语句

来自分类Dev

为什么我的插入不使用预准备语句工作?

来自分类Dev

使用mysqli预准备语句测试表中某行的存在

来自分类Dev

如何在PDO准备好的语句的标记参数中使用句点?

来自分类Dev

如何在PDO准备好的语句的标记参数中使用句点?

来自分类Dev

如何在 Doctrine 准备的 SQL 语句中使用 + 或 - 运算符作为参数?

来自分类Dev

SQL语句和预准备语句错误

来自分类Dev

准备的语句参数问题

来自分类Dev

如何将多个参数绑定到MySQLi预准备语句

来自分类Dev

在PostgreSQL中按间隔添加日期作为参数的预准备语句

来自分类Dev

Java不会运行带有参数的预准备语句并且不会引发任何错误

来自分类Dev

PHP-MySQLi预准备语句

来自分类Dev

.Net Core Npgsql预准备语句

Related 相关文章

  1. 1

    在PHP中使用MySQLi预准备语句,获取“预准备语句中没有为参数提供数据”

  2. 2

    在python中使用带有MySQL的预准备语句

  3. 3

    在MySQL预准备语句的WHERE子句中使用通配符

  4. 4

    在MySQL预准备语句的WHERE子句中使用通配符

  5. 5

    在准备好的语句参数中使用表列

  6. 6

    在准备好的语句参数中使用表列

  7. 7

    如何在php中的Postgresql中使用白名单和预准备语句?

  8. 8

    在带绑定变量的预准备语句中使用AES_ENCRYPT

  9. 9

    如何在预准备语句(在jsp中)中使用jquery变量?

  10. 10

    JDBC如何在带where子句的预准备语句中使用占位符?

  11. 11

    PHP:预准备语句

  12. 12

    PHP:预准备语句

  13. 13

    不知道有多少参数时的预准备语句

  14. 14

    预准备语句中的参数是否包含连字符(-)?

  15. 15

    如何通过预准备语句使用sql函数CONCAT

  16. 16

    使用变量的Python和预准备的SQL语句

  17. 17

    不使用get_result()的预准备语句

  18. 18

    为什么我的插入不使用预准备语句工作?

  19. 19

    使用mysqli预准备语句测试表中某行的存在

  20. 20

    如何在PDO准备好的语句的标记参数中使用句点?

  21. 21

    如何在PDO准备好的语句的标记参数中使用句点?

  22. 22

    如何在 Doctrine 准备的 SQL 语句中使用 + 或 - 运算符作为参数?

  23. 23

    SQL语句和预准备语句错误

  24. 24

    准备的语句参数问题

  25. 25

    如何将多个参数绑定到MySQLi预准备语句

  26. 26

    在PostgreSQL中按间隔添加日期作为参数的预准备语句

  27. 27

    Java不会运行带有参数的预准备语句并且不会引发任何错误

  28. 28

    PHP-MySQLi预准备语句

  29. 29

    .Net Core Npgsql预准备语句

热门标签

归档