不幸的是,默认情况下,bind_param()不接受数组而不是单独的变量。但是,自PHP 5.6起,将进行重大改进。
要将任意数量的变量绑定到mysqli查询中,您将需要一个参数解包运算符。这将使 *** 作尽可能简单和流畅。
例如,要将PHP数组与mysql的
IN()运算符一起使用,您将需要以下代码
// our array$words = ['a','b','c'];// create an SQL query with placeholders and prepare it$in = str_repeat('?,', count($array) - 1) . '?'; // returns ?,?,?...$sql = "SELECt name FROM table WHERe city IN ($in)"; $stmt = $mysqli->prepare($sql);// create the types string dynamically and bind an array$types = str_repeat('s', count($array)); // returns sss...$stmt->bind_param($types, ...$array);// execute and fetch the rows$stmt->execute();$result = $stmt->get_result(); // get the mysqli result$data = $result->fetch_all(MYSQLI_ASSOC); // fetch the data
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)