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

用户名

我正在尝试将我的值绑定到PDO中的准备好的语句中。

以下是使用准备好的语句块的前提条件代码:

$tab = 'air_user';
$fie = array('USER_NAME', 'USER_PASSWORD' , 'USER_EMAIL');
$name = $_POST['name'];
$pass = $_POST['password'];
$email = $_POST['email'];
$val = array(
    'name' => $name,
    'pass' => $pass,
    'email' => $email
);
$this->connect($tab,$fie,$val);

这是我准备这些值并进行necessaru插入的部分:

public function connect($table,$fields,$values)
{

    try{
        $con = new PDO ('mysql:host=localhost;dbname=air','root','123456');
        $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

        $fields = implode(", ", $fields);
        echo $fields;
        $values = implode(", ", $values);
        echo $values;

        // have to make this prevent sql injection //
        $stmt = $con->prepare("INSERT INTO $table(ID,$fields) VALUES (?,?,?,?)");
        $stmt->execute(array('',$values));

    } catch(PDOException $e) {
        die("this cant connect the database");
    }
}

那为什么我的INSERT不起作用?isit可以帮助我看看它吗,我尝试了很多事情,但没有一个起作用。

凯文

不,不要implode在中传递的值->execute()必须是数组:

$fields = implode(", ", $fields);
// $values = implode(", ", $values); // DONT IMPLODE!
$values = array_values($values);

$stmt = $con->prepare("INSERT INTO $table(ID,$fields) VALUES (NULL, ?,?,?)");
$stmt->execute($values);

或@Augwa的建议:

// $fields = implode(", ", $fields); // not needed
// $values = implode(", ", $values); // DONT IMPLODE!

$placeholders = substr(str_repeat('?,', sizeOf($fields)), 0, -1);
// $placeholders = implode(', ', array_fill(0, count($values), '?'));

$stmt = $con->prepare(
    sprintf(
        "INSERT INTO %s (%s) VALUES (%s)", 
        $table, 
        implode(',', $fields), 
        $placeholders
    )
);
$stmt->execute($values);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PDO多参数绑定准备好的语句

来自分类Dev

PDO准备好的语句返回空数组

来自分类Dev

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

来自分类Dev

我正在尝试将数组值绑定到php pdo中的一个准备好的语句,但仅绑定的数组的第一个元素

来自分类Dev

PDO语句在准备好的语句中为字符串值插入整数

来自分类Dev

从mysqli准备好的语句创建数组

来自分类Dev

在绑定参数中遍历数组-准备好的语句

来自分类Dev

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

来自分类Dev

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

来自分类Dev

PHP多个准备好的语句

来自分类Dev

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

来自分类Dev

SQL 准备好的语句。PHP

来自分类Dev

php - 准备好的语句未执行

来自分类Dev

准备好的语句 PHP OOP

来自分类Dev

MySQL Connector中的准备好的语句

来自分类Dev

Eclipse中的准备好的语句执行

来自分类Dev

使用 PDO 获取 ASSOC 数组而不使用准备好的语句

来自分类Dev

PDO如何在准备好的语句中将datetime值设置为NULL?

来自分类Dev

PDO如何在准备好的语句中将datetime值设置为NULL?

来自分类Dev

在PHP中使用准备好的PDO语句-二进制数

来自分类Dev

尽管准备好的语句正确,但PHP pdo查询无法返回结果

来自分类Dev

PHP Postgres PDO驱动程序不支持准备好的语句吗?

来自分类Dev

尽管准备好的语句正确,但PHP pdo查询无法返回结果

来自分类Dev

在PHP中使用准备好的PDO语句-二进制数

来自分类Dev

PDO准备好的语句-参数名称中的冒号用于什么?

来自分类Dev

PDO:如何在一个事务中运行多个准备好的语句?

来自分类Dev

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

来自分类Dev

准备好的语句,其中值在数组中

来自分类Dev

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

Related 相关文章

  1. 1

    PDO多参数绑定准备好的语句

  2. 2

    PDO准备好的语句返回空数组

  3. 3

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

  4. 4

    我正在尝试将数组值绑定到php pdo中的一个准备好的语句,但仅绑定的数组的第一个元素

  5. 5

    PDO语句在准备好的语句中为字符串值插入整数

  6. 6

    从mysqli准备好的语句创建数组

  7. 7

    在绑定参数中遍历数组-准备好的语句

  8. 8

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

  9. 9

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

  10. 10

    PHP多个准备好的语句

  11. 11

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

  12. 12

    SQL 准备好的语句。PHP

  13. 13

    php - 准备好的语句未执行

  14. 14

    准备好的语句 PHP OOP

  15. 15

    MySQL Connector中的准备好的语句

  16. 16

    Eclipse中的准备好的语句执行

  17. 17

    使用 PDO 获取 ASSOC 数组而不使用准备好的语句

  18. 18

    PDO如何在准备好的语句中将datetime值设置为NULL?

  19. 19

    PDO如何在准备好的语句中将datetime值设置为NULL?

  20. 20

    在PHP中使用准备好的PDO语句-二进制数

  21. 21

    尽管准备好的语句正确,但PHP pdo查询无法返回结果

  22. 22

    PHP Postgres PDO驱动程序不支持准备好的语句吗?

  23. 23

    尽管准备好的语句正确,但PHP pdo查询无法返回结果

  24. 24

    在PHP中使用准备好的PDO语句-二进制数

  25. 25

    PDO准备好的语句-参数名称中的冒号用于什么?

  26. 26

    PDO:如何在一个事务中运行多个准备好的语句?

  27. 27

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

  28. 28

    准备好的语句,其中值在数组中

  29. 29

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

热门标签

归档