Php execute()只需要0个参数,给定1个(MySQLi)?
在我使用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
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();