我有一个数据库类如下:
class Db
{
public $mysqli = null;
public function __construct($port = NULL)
{
include $_SERVER['DOCUMENT_ROOT'].'/php/'.'config.php';
if($port == NULL)
$port = ini_get('mysqli.default_port');
$this->mysqli = new mysqli(HOST, USER, PASS, DB, $port)
or die('There was a problem connecting to the database');
if ($this->mysqli->connect_errno) {
echo "Error MySQLi: ( " . $this->mysqli->connect_errno . ") " . $this->mysqli->connect_error;
exit();
}
$this->mysqli->set_charset("utf8");
}
所有这些都很好,我添加了这个功能:
public function insert($sql, $bind) {
$stmt = $this->mysqli->prepare($sql);
$stmt->bind_param('sssssss', $bind[0], $bind[1], $bind[2], $bind[3], $bind[4], $bind[5], $bind[6]);
$stmt->execute();
}
当然,问题在于这不是很动态。我可能只有两件事要绑定,它们不一定是字符串。
所以例如我这样做:
$db = new Db();
$strings = array ($chosenImage, $id);
$db->insert("INSERT INTO Media VALUES (NULL, ?, ?)", $strings);
所以这只是两个绑定。
那么我的问题有两个:1)我如何最好地将这个函数变成一个评估数组的类型和大小的函数,并且尽可能简洁?
2)此外,使用类似的功能(让我们称之为召回)我将如何使用 select 语句返回 2 个项目,并将它们绑定以返回(假设我想要返回的数量可能会根据查询而改变