1

解決済み - 愚かな私....コメント投稿者による指摘のおかげで、 $mysqli->error は、私が mysql ユーザーに DELETE 権限を付与していないことを明らかにしました。それを追加した後、すべてが順調です。


このクエリを実行できないようです。DB への接続は成功しましたが、ログにエラーが表示されていないにもかかわらず、「custom_messages」テーブルの行を削除できませんでした... 方法 1:

<?php


// get form.html input
    $var1 = $_POST["var1"];
    $var2 = $_POST["var2"];

$mysqli = new mysqli($_SERVER['DB_HOST'], $_SERVER['DB_USER'], $_SERVER['DB_PASS'],"theDB");
if ($mysqli->connect_errno) {
printf ( "Connect failed: %s\n", $mysqli->connect_error );
exit ();
} else {
printf ( "DB Connection Established.\n" );
if ($mysqli->query (sprintf ( "DELETE FROM custom_messages WHERE var1='%s' && var2='%s'", mysql_real_escape_string ( $var1, $var2 ) ) )) {
    printf ( "%d rows deleted.\n", $mysqli->affected_rows );
}


//close DB connection
$mysqli->close();

?>

また、同じ結果で方法 2 も試しましたが、行は削除されませんでした。それは「1」をエコーするところまで取得します..

<?php


    // get form.html input
    $var1 = $_POST["var1"];
    $var2 = $_POST["var2"];

$mysqli = new mysqli($_SERVER['DB_HOST'], $_SERVER['DB_USER'], $_SERVER['DB_PASS'],"CCv2");
if ($mysqli->connect_errno) {
printf ( "Connect failed: %s\n", $mysqli->connect_error );
exit ();
} else {
printf ( "DB Connected.\n" );

$stmt = $mysqli->prepare("DELETE FROM custom_messages WHERE var1=? AND var2=?");
echo "one\n";
$stmt->bind_param('ss',$var1, $var2);
echo "two\n";
$stmt->execute();
$stmt->close();
printf ( "%d rows deleted.\n", $mysqli->affected_rows );


    //close DB connection
    $mysqli->close();

?>

ここで本当に頭を悩ませています。どんな助けでも大歓迎です!

4

0 に答える 0