是否可以在$ stmt-> prepare($ query)的查询中使用*?

时间:2014-03-24 10:42:20

标签: php mysql mysqli

我知道这可能是一个菜鸟问题。 我仍然是php的新手,特别是在使用mysqli时。

是否可以在$ stmt-> prepare()的查询中使用*并使用bind_result()? 例如,我必须在1个表中选择50列,条件作为参数原因如果我输入所有50列需要时间。 所以在这种情况下我怎样才能得到结果?

$stmt->prepare("Select * from table where col1 = ? and col2=? and col3=? and col4=?")
$stmt->bind_param("ssss",$col1, $col2, $col3, $col4)
$stmt->execute()

感谢。感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

是的,当然 只需使用$res = $stmt->get_result(),然后使用熟悉的$row = $res->fetch_assoc()内容

但是,对于新手来说,确实建议你选择PDO而不是mysqli。

答案 1 :(得分:0)

mysqli只使用问号作为占位符字符,因此您可以像往常一样使用*。

答案 2 :(得分:-1)

为了节省时间,如果您使用的是PDO,您可以为参数命名,然后进行质量分配 E.g。

$sql = 'SELECT *
    FROM table
    WHERE col1=:myval OR col2=:myval OR col3=:myval';
$sth = $dbh->prepare($sql);
$sth->execute(array(':myval ' => 150));
$red = $sth->fetchAll();