截断表不起作用

Fre*_*sen 1 php mysql pdo truncate

我正在开发一个PHP脚本,用于将一些数据库行从一个DB导出/导入到另一个DB.

到目前为止,我得到了这个函数,以确保在将新行放入其中之前目标表为空:

function truncateTable($conn, $tblname)
{
    echo "Truncating..";
    $query = $conn->exec("TRUNCATE TABLE $tblname") or die("failed!");
    echo "Truncated table $tblname!";
}
Run Code Online (Sandbox Code Playgroud)

但是,这给了我这个错误:

Call to a member function exec() on a non-object
Run Code Online (Sandbox Code Playgroud)

传递给函数的connectionstring $conn如下所示:

$con2 = new PDO("mysql:host=$dbs2;dbname=$dbd2",$dbu2,$dbp2);
Run Code Online (Sandbox Code Playgroud)

我把这个函数称为:

truncateTable($con2, "users");
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我只是在学习PDO,请原谅我这是一个非常基本的问题.

use*_*426 5

试试这个,你要传递$conn给方法,而不是$q:

function truncateTable($conn, $tblname)
{
    echo "Truncating..";
    $query = $conn->exec("TRUNCATE TABLE $tblname") or die("failed!");
    echo "Truncated table $tblname!";
}
Run Code Online (Sandbox Code Playgroud)

要解决其他问题,请使用query()而不是exec():)