0

一時テーブルがどのように機能するかを理解しようとしています。しかし、チュートリアルからコピーして貼り付けても、期待した結果が得られません。

詳細については、下のコードを参照してください。現時点では、.php ファイルは空白のページ (エラーなし) を返しますが、次のようになると予想されます。

1 行挿入されました。

エラー コードを探しましたが、一時テーブルにはエラー コードがないことがわかりました。

誰かが私が間違っていることを知っていますか?

<?php
    $link = mysqli_connect("localhost","xxx","xxx","xxx");

    /* check connection */
    if (mysqli_connect_errno()) 
    {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }

    mysqli_query($link, "CREATE TEMPORARY TABLE myCity (Name CHAR(30)");

    $city = "'s Hertogenbosch";
    $city = mysqli_real_escape_string($link, $city);

    /* this query with escaped $city will work */
    if (mysqli_query($link, "INSERT INTO myCity (Name) VALUES ('$city')")) 
    {
        printf("%d Row inserted.\n", mysqli_affected_rows($link));
    }

    mysqli_close($link);
?>
4

2 に答える 2

3

SQL の作成にエラーがあるようです。閉じ括弧がありません: ")"

CREATE TEMPORARY TABLE myCity (Name CHAR(30)

エイドリアン。

于 2013-11-07T13:41:46.520 に答える
0

これは私のために働く

<?php
ini_set("display_errors",1);
error_reporting(E_ALL);

$mysqli = new mysqli("localhost", "root", "admin123", "test");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$mysqli->query("CREATE TEMPORARY TABLE CITIES (
  id int(11) NOT NULL,
  name varchar(64) NOT NULL
)");

//$mysqli->autocommit(FALSE);

$mysqli->query("INSERT INTO CITIES VALUES ('1', 'Bavaria')");
$mysqli->query("INSERT INTO CITIES VALUES ('2', 'Havana')");

//$mysqli->commit();

if ($result = $mysqli->query("SELECT * FROM CITIES LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);
    /* free result set */
    $result->close();
}

//$mysqli->query("DROP TABLE CITIES");

$mysqli->close();

一時テーブルはセッションごとにしか存在しないことを覚えておいてください。時々、従来のテーブルを作成して後で切り捨てる必要があります... Doctrine DBAL や ADODb などの DB lib を使用することを考える必要があります...

于 2013-11-07T14:06:27.370 に答える