我有下一个代码:
bd.query('SELECT Foto.*, Video.* FROM Foto, Video WHERE Foto.id_usuario = Video.id_usuario AND Video.id_usuario=1', function(error,filas)
但是" AND"语句而不是给出一个特定的值我想添加一个动态的,就像我在普通的sql select中做的那样:
bd.query('UPDATE Oferta SET ?,? WHERE ?', [{titulo:titulo},{descripcion:descripcion},{id:id}], function(error,filas)
我试图做的是:
bd.query('SELECT Foto.*, Video.* FROM Foto, Video WHERE Foto.id_usuario = Video.id_usuario AND ?',{id_usuario:id}, function(error,filas)
但它没有用!我无法找到任何人做过类似事情的地方:(也许是因为我不知道如何搜索它。
答案 0 :(得分:2)
如果要使用命名占位符,则必须传递单个对象,如下所示:
bd.query('SELECT Foto.*, Video.* FROM Foto, Video WHERE Foto.id_usuario = Video.id_usuario AND id = :id',{id: id}, function(error,filas)
bd.query('UPDATE Oferta SET titulo = :titulo, descripcion = :descripcion WHERE id = :id', {titulo:titulo,descripcion:descripcion, id:id}, function(error,filas)
否则你可以使用像Oscar建议的简单占位符:)
答案 1 :(得分:0)
我认为你在第二句中传递了一个对象,在第三句中传递了一系列对象。
您是否可以尝试仅使用值传递数组而不使用键。 替换倍数将是这样的:
案例2: bd.query('SELECT Foto.*, Video.* FROM Foto, Video WHERE Foto.id_usuario = Video.id_usuario AND ?',[id], function(error,filas)
案例3: bd.query('UPDATE Oferta SET ?,? WHERE ?', [titulo,descripcion,id], function(error,filas)