2

このコードは MyFile.php にあります

$db= mysqli_connect("host","user","pw","db");//connect to db
if (mysqli_connect_errno($con))//check connection
{echo "Failed to connect to MySQL: " . mysqli_connect_error();}
//Create a token for the unique link
$title= $_GET[apt_title];
$email= $_GET[mail_address];
$token = sha1(uniqid($email, true));
$time = $_SERVER["REQUEST_TIME"];
//prepare the query to be executed
$query = $db->prepare(
"INSERT INTO pending_users (email, token, title_apt, tstamp) VALUES (?, ?, ?, ?)"
);
$query->execute(
array(
    $title,
    $email,
    $token,
    $time
)
);

エラーメッセージ:

警告: mysqli_stmt::execute() は正確に 0 個のパラメーターを想定しており、1 個は /websites で指定されています

execute()正しい呼び方は?

4

3 に答える 3

7

mysqli::execute()パラメータを受け入れないため です。呼び出す前に、クエリを準備してから、パラメーターをクエリにバインドする必要があります。次に、メソッドを呼び出す必要がありますexecute()。だから、このようにしてみてください:

$query = $db->prepare(
"INSERT INTO pending_users (email, token, title_apt) VALUES (?, ?, ?, ?)"
);
$query->bind_param('ssss', $title, $email, $token, $time);
$query->execute();

詳細については、ドキュメントを確認してください

于 2013-10-31T12:59:33.113 に答える