0

UPDATE を実行するために、SELECT で動作するコードを適応させようとしています。ここでは、エラーはありませんが、何も更新せず、ループにも入りません。選択した日 ( ) の部屋タイプを更新することになってい$valueます。

すべての値をエコーし​​て確認しましたが、正しい値です。

$bdd = mysqli_connect('localhost', 'root', '', 'webpage')
$roomty = 1;                                                                                        
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
}

foreach ($_SESSION['datesBooked_1_month'] as $key => $value)
{
    $stmt = mysqli_stmt_init($bdd);
    if ( mysqli_stmt_prepare( $stmt , "UPDATE '".$_SESSION['tab_from_month_year']."'
SET '".$_SESSION['roomtype_x']."'='".$_SESSION['roomtype_x']."' + ? WHERE day = ?"))
    {
        mysqli_stmt_bind_param( $stmt ,'is', $roomty , $value );
        mysqli_stmt_execute( $stmt );
        mysqli_stmt_close($stmt);
        echo " Booked !<br /> "; 
    }           
}
4

3 に答える 3

0

PHP の新しい MySql ドライバーで次のコードを試してください。

  • あなたは整数値の引用符を入れました、それは間違っています
  • 数字で列に名前を付けていますか?それは快適ではありません。
  • $valueが文字列であることは確かですか?
  • foreachループで$key => $valueを使用したのはなぜですか?

ここにコード:

/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=webpage;host=127.0.0.1';
$user = 'root';
$password = 'dbpass'; #put here yor password

try {
    $dbh = new PDO($dsn, $user, $password);
    } catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
    }

foreach $_SESSION['datesBooked_1_month'] as  $value) {
    #I hope that following variables don't contain space
    $query = "UPDATE " .$_SESSION['tab_from_month_year']; 
    $temp = $_SESSION['roomtype_x'] + $roomty ;
    #you wrote that $value is a string, are you sure?
    $query .= " SET ".$_SESSION['roomtype_x']. "=$temp WHERE day='$value'"   ;
    $dbh->query($query);
    }
于 2013-10-22T08:49:44.103 に答える
-2

これがデータベースを選択するために必要な完全なコードである場合、現在、ステートメントはサーバーに送信されていますが、データベースには送信されていないため、エラーは発生しません。以下を使用する必要があります。

mysqli_select_db("You database goes here");
于 2013-10-01T15:09:01.410 に答える