下面的代码进行查询,然后循环这些结果。我很难理解查询中的"?"是什么,以及如何使"?"动态。
它假定name="?"。我变了?添加到我在函数$ad_id中添加的变量,但仍然不起作用。我基本上只需要查询DB WHERE name=一个变量。但这种简单的解决方案并不奏效。我替换了注释行。
任何帮助都将不胜感激。如果你想知道这是我试图使之动态的代码,而不仅仅是提取表中的所有图像:https://github.com/blueimp/jQuery-File-Upload/wiki/PHP-MySQL-database-integration
protected function set_additional_file_properties($file) {
parent::set_additional_file_properties($file);
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$ad_id = '1';
//$sql = 'SELECT `id`, `type`, `title`, `description` FROM `'
//.$this->options['db_table'].'` WHERE `name`=?';
$sql = 'SELECT id, type, title, description FROM '.$this->options['db_table'].' WHERE name = '.'$ad-id'.';
$query = $this->db->prepare($sql);
$query->bind_param('s', $file->name);
$query->execute();
$query->bind_result(
$id,
$type,
$title,
$description
);
while ($query->fetch()) {
if ($description == $ad_id){
$file->id = $id;
$file->type = $type;
$file->title = $title;
$file->description = $description;
};
}
}
}
在本例中,SQL查询使用绑定参数。这意味着您为SQL查询创建字符串,并为每个变量放置一个占位符-占位符是"?"你提到的角色。然后是以下两行:
$query = $this->db->prepare($sql);
$query->bind_param('s', $file->name);
第一行将查询发送到数据库,第二行将需要绑定到占位符站点(这些问号在查询字符串中的位置)的参数发送到数据库。因此,如果要更改插入到查询中的变量,则应该更改bind_param调用。
查看bind_param
的文档,但基本上"s"指定了一个字符串参数,第二个参数是变量本身。
希望这能让您对这里发生的事情有足够的了解,从而更改代码以实现您想要的目的。