我为 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';
}
}