-1

コードは次のとおりです。

    <html>

    <body>

    <?php
    $con = mysql_connect("localhost","moviek5q_arka","******");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }

    $pizza  = "Age
    Anger
    Architecture
    Art 
    Beauty
    Birthday
    Business
    Car
    Change
    Computers
    Dad
    Dating
    Death
    Design
    Diet
    Dreams
    Education
    Environmental
    Equality
    Experience
    Faith
    Family
    Finance
    Fitness
    Food
    Forgiveness
    Friendship 
    Funny
    Gardening
    Government
    Graduation
    Happiness
    Health
    History
    Home
    Humor
    Imagination
    Inspirational
    Intelligence
    Leadership
    Legal
    Life 
    Love 
    Marriage
    Medical
    Men
    Mom
    Money
    Motivational 
    Movies
    Music
    Nature
    Parenting
    Patriotism
    Peace
    Pet
    Poetry
    Politics
    Power
    Religion
    Science
    Society
    Sports
    Success 
    Technology
    Teen
    Time
    Travel
    Trust
    War
    Wedding
    Wisdom 
    Women
    Work
    ";
    $pieces = explode("\n", $pizza);
    $i=0;

    $a=mysql_select_db("moviek5q_Quote", $con);
    if(!$a) echo"Error";

    for($i=8;$i<75;$i++) {


    $sql=mysql_query("INSERT INTO moviek5q_Quote.Categories (Key, Name)
    VALUES
    (NULL,'$pieces[$i]')");
    if(!$sql) {die('Could not connect: ' . mysql_error());}

    }

    mysql_close($con);

    echo "done";
    ?>

    </body>

</html>

ただし、スクリプトを実行するとエラーが発生します。

接続できませんでした:SQL構文にエラーがあります。1行目の「Key、Name)VALUES(NULL、'Change')」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

4

3 に答える 3

4

Keyは予約済みのキーワードであるため、クラッシュします。列名を変更するか、引用符( `)で囲みます。

例えば

$sql = mysql_query( "INSERT INTO moviek5q_Quote.Categories (`Key`, Name)
VALUES
(NULL, '$pieces[$i]')" );

予約語の完全なリストについては、http://dev.mysql.com/doc/refman/5.5/en/reserved-words.htmlを確認してください

于 2012-12-18T08:19:11.477 に答える
2

フィールド名Key予約語であるため、クエリは失敗します。バックティックを使用して修正できます。

INSERT INTO moviek5q_Quote.Categories (`Key`, Name)
于 2012-12-18T08:20:58.300 に答える
2

ヒントとして、PDOまたはMySQLiを使用してみてください。mysql_コードは非推奨になり、将来利用できなくなる可能性があります。

于 2012-12-18T08:27:31.213 に答える