使用PHP将新数据插入MySQL数据库时,突然收到一个非常奇怪的错误。我在同一数据库的另一个表上使用了相同的代码,并且工作正常。 $ db信息是从“ require”文件中提取的,并且是正确的。我可以连接到数据库就好了。这是两个错误:
警告:mysqli_query()至少需要2个参数,其中1个在 /post.php,第70行
警告:mysqli_free_result()期望参数1为mysqli_result, 在第72行的/post.php中给出的布尔值
下面的代码,将不胜感激。
$db = mysqli_connect($dbasehost, $dbaseuser, $dbasepass, $dbasename);
$query = "INSERT INTO memories (emailaddress, recname, recemail, tel, memory, sendsms, sendemail, repeating, repeatoption, quantity, startdate, sendtime, security) VALUES ('$emailaddress', '$recname', '$recemail', '$tel', '$memory', '$sendsms', '$sendemail', '$repeating', '$repeatoption', '$quantity', '$startdate', '$sendtime', '$security');";
$result = mysqli_query($db, $query);
mysqli_query("COMMIT");
mysqli_free_result($result);
mysqli_close($db);
答案 0 :(得分:1)
为什么最后在插入查询中添加了分号
$query = "INSERT INTO memories (emailaddress, recname, recemail, tel, memory, sendsms, sendemail, repeating, repeatoption, quantity, startdate, sendtime, security) VALUES ('$emailaddress', '$recname', '$recemail', '$tel', '$memory', '$sendsms', '$sendemail', '$repeating', '$repeatoption', '$quantity', '$startdate', '$sendtime', '$security');";
删除倒数第二个分号,然后尝试:
$query = "INSERT INTO memories (emailaddress, recname, recemail, tel, memory, sendsms, sendemail, repeating, repeatoption, quantity, startdate, sendtime, security) VALUES ('$emailaddress', '$recname', '$recemail', '$tel', '$memory', '$sendsms', '$sendemail', '$repeating', '$repeatoption', '$quantity', '$startdate', '$sendtime', '$security')";
答案 1 :(得分:1)
运行查询以插入数据库时,它返回一个布尔值。如果成功则为true,否则为false,因此无法对用于插入数据库的查询执行mysqli_free_result,因为它不包含mysqli_result,它只是一个布尔值