正常な応答が正しく表示され、アイテムがデータベースに追加されたにもかかわらず、フォームが完了したときにこのエラーが発生します。このエラーの解決方法を特定するのに苦労します
ここでエラー
に/home/site4/public_html/lab/mailinglist/mailing_list_external.phpに有効なMySQLの結果リソースではありませんが、警告だ:mysql_free_result():指定された引数は、ライン18
ライン18は
mysql_free_result($check_res);
で、全体のPHPファイルが
ですあなたはmysqliの私を使用している場合<?php
include("mailing_list_include.php");
// determine if they need to see the form or not
if ($_POST["email"] == "") {
header("Location: mailing_list_external.php");
exit;
} else {
// connect to database
doDB();
// check that the email is in list
emailChecker($_POST["email"]);
// get number of results and do action
if (mysqli_num_rows($check_res) < 1) {
// free result
mysql_free_result($check_res);
// add record
$add_sql = "INSERT INTO subscribers (email)
VALUES('".$_POST["email"]."')";
$add_res = mysqli_query($mysqli, $add_sql)
or die(mysqli_error($mysqli));
$display_block = "<p>Thanks for signing up!</p>";
// close connection to mysql
mysqli_close($mysqli);
} else {
// print failure message
$display_block = "<p>You're already subscribed!</p>";
}
}
?>
<html>
<body>
<?php echo "$display_block"; ?>
</body>
</html>
私が言ったように、それが正常に動作しますが、私はまだ、このエラーが出る...。ここ
が含まれているファイルのコード(mailing_list_include.php)
<?php
function doDB() {
global $mysqli;
// connect to server and select database; you may need it
$mysqli = mysqli_connect("localhost", "XXX",
"XXX", "XXX");
// if connection fails, stop script execution
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
}
function emailChecker($email) {
global $mysqli, $check_res;
//check that email is not already in list
$check_sql = "SELECT id FROM subscribers
WHERE email = '".$email."'";
$check_res = mysqli_query($mysqli, $check_sql)
or die(mysqli_error($mysqli));
}
?>
*完全な*ソースコードを投稿してください。 '$ check_res'はどこから来たのですか? – Borealid
今、インクルードコードを追加してくれてありがたいです。 – Andy
他のものはすべてmysqli_接頭辞付き関数を使用していますが、なぜこの場合はmysql_を使用していますか? – bumperbox