下面的代码进行查询,然后循环遍历这些结果。我很难理解"?"在那个查询中以及如何制作"?"动态的。
它假设name ="?"。我改变了 ?我在函数$ ad_id中添加的变量仍然不起作用。我基本上只需要查询数据库只有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;
};
}
}
}
答案 0 :(得分:0)
在此示例中,SQL查询使用绑定参数。这意味着您为SQL查询创建了字符串,并为每个变量放置一个占位符 - 占位符是'?'你提到的角色。然后是以下两行:
$query = $this->db->prepare($sql);
$query->bind_param('s', $file->name);
第一行将查询发送到数据库,第二行将需要绑定的参数发送到占位符站点(这些问号位于查询字符串中)。因此,如果要更改插入查询的变量,则应更改bind_param调用。
查看bind_param
的文档,但基本上是''指定字符串参数,第二个参数是变量本身。
希望这能让您充分了解这里发生的事情,以便更改代码以完全按照您的意愿进行操作。