Php execute()只需要0个参数,给定1个(MySQLi)?

Php execute()只需要0个参数,给定1个(MySQLi)?,php,mysqli,Php,Mysqli,在我使用Mysqli编写代码的过程中,我被难住了,似乎无法理解错误的意思: Warning: mysqli_stmt::execute() expects exactly 0 parameters, 1 given in /home/test/private_html/test.php on line 58 我多次尝试修复的代码也是如此 $stmt = $mysqli->prepare("INSERT INTO `test_table`(datenow,test1,test2

在我使用Mysqli编写代码的过程中,我被难住了,似乎无法理解错误的意思:

Warning: mysqli_stmt::execute() expects exactly 0 parameters, 1 given in /home/test/private_html/test.php on line 58
我多次尝试修复的代码也是如此

$stmt = $mysqli->prepare("INSERT INTO  `test_table`(datenow,test1,test2,test3,test4,test5,test6,test7,test8, 
test9,test10,test11,test12,test14,test15,test16,test17,test18,) 
VALUES (CURRENT_TIMESTAMP, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") 
$stmt->bind_param('ssssssssssssssssss',$test1,$test2,$test3,$test4,$test5,$test6,$test7,$test8,$test9,$test10,$test11,$test12,$test13,$test14, $test15,$test16,$test17,$test18);
$stmt->execute(array($test1,$test2,$test3,$test4,$test5,$test6,$test7,$test8,$test9,$test10,$test11,$test12,$test13,$test14,$test15, $test16,$test17,$test18
));
第58行是:

));
应该是:

$stmt->execute();
调用
execute
时不提供值,调用
bind\u param
时提供值

看起来你把mysqli和PDO搞混了

$stmt->execute();

这已经足够了,mate。

谢谢它成功了,还有一种方法可以实现两个$stmt,例如:一个准备通过查询更新用户文件,另一个执行此代码。您可以准备任意数量的语句。如果您想同时使用
UPDATE
INSERT
,我怀疑您真正应该使用的是
INSERT
ON DUPLICATE KEY UPDATE
选项。
$stmt = $mysqli->prepare("INSERT INTO  `test_table`(datenow,test1,test2,test3,test4,test5,test6,test7,test8, 
test9,test10,test11,test12,test14,test15,test16,test17,test18,) 
VALUES (CURRENT_TIMESTAMP, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") 
$stmt->bind_param('ssssssssssssssssss',$test1,$test2,$test3,$test4,$test5,$test6,$test7,$test8,$test9,$test10,$test11,$test12,$test13,$test14, $test15,$test16,$test17,$test18);
$stmt->execute();