0

我为 PHP (PDO) -> SQL 服务器编写了这段代码。它不会引发错误,但不会从数据库返回任何内容。我曾尝试在 SQL Server Management Studio 中运行它输出的 SQL,它运行良好。此外,我正在输出要绑定在一起的参数,以确保一切看起来都很好并且确实如此。由于某些原因,绑定阻止了 SQL 正常运行。这种方法有问题吗?甚至可以像我在这里尝试的那样绑定数组循环吗?代码如下,在此先感谢。

public function insertStaff( $table, $param )
{
    $qStr = '';
    foreach( $_POST as $k => $v )
    {
        if( $k == 'dummy' || $v == '' )
        {
            $qStr .= '';
        }
        else
        {
            $qStr .= '?,';
        }
    }
    $qStr = rtrim( $qStr, ',' );
    $sql = "INSERT INTO ? ($qStr) VALUES ($qStr)";
    $stmt = $this->c->prepare( $sql );
    //bind table
    $stmt->bindValue( 1, $table, PDO::PARAM_STR );
                        $output = '';
    $x = 2;
    foreach( $_POST as $k => $v )
    {
        if( $k !== 'dummy' && $v !== '' )
        {
            $stmt->bindValue( $x, $k, PDO::PARAM_STR );
            $output .= '<hr>'.$x.' => '.$k;
            $x++;
        }
    }
    foreach( $_POST as $k => $v )
    {
        if( $k !== 'dummy' && $v !== '' )
        {
            $stmt->bindValue( $x, $v, PDO::PARAM_STR );
            $output .= '<hr>'.$x.' => '.$v;
            $x++;
        }
    }
    //return $output;
    if( $stmt->execute() )
    {
        return 'success';
    }
    else
    {
        return 'fail';
    }
}
4

0 回答 0