繁体   English   中英

PHP: INSERT PDO 查询数组作为绑定值

[英]PHP : INSERT PDO Query array as binding value

如何使用PDO Query arrayBindvalue以这种方式? 我收到错误

$productadd_query_array = array(
        "query" => "INSERT INTO vn_product (title) VALUES (:title)",
        "query_variables" => "bindValue(':title', '1')"
    );

$product_add = vn_db_query_select( $productadd_query_array );

Function vn_db_query_select:

function vn_db_query_select($array = null){

        if ( is_null( $array ) || !defined( 'MYSQL_USER' ) || !defined( 'MYSQL_PASSWORD' ) || !defined( 'MYSQL_HOST' ) || !defined( 'MYSQL_DATABASE' ) ) {
            return false;
        }

        if ( !isset( $array["query"] ) || is_null( $array["query"] ) || strlen( $array["query"] ) < 11 ) {
            return false;
        }

        $pdo = new PDO(
            "mysql:host=" . MYSQL_HOST . ";dbname=" . MYSQL_DATABASE.";charset=utf8", // DSN
            MYSQL_USER, // Username
            MYSQL_PASSWORD // Password
            //$pdoOptions // Options
        );

        $userInfo = $pdo->prepare($array["query"]); 

        if ( is_array( $array["query_variables"] ) ) {
            foreach ($array["query_variables"] as $var_name => $var_value) {
                $userInfo->bindValue(":".$var_name, $var_value);
            }
        }

        $userInfo->execute();
        $user = $userInfo->fetchAll();

        $pdo = null;

        return $user;
    }

如果您在此处查看query_variables的代码:

if ( is_array( $array["query_variables"] ) ) {
      foreach ($array["query_variables"] as $var_name => $var_value) {
           $userInfo->bindValue(":".$var_name, $var_value);
    }
}

它需要一个键=>值的数组。 所以你需要像这样传递它:

"query_variables" => ['title'=> '1']

或者对于旧版本的 PHP:

"query_variables" => array('title'=>'1')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM