我有这个为PHP(PDO)编写的代码 - > SQL服务器。它不会抛出任何错误,但不会从DB返回任何内容。我已经尝试在SQL服务器管理工作室中运行它输出的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';
}
}