【问题标题】:MYSQL INSERT not working in php() [closed]MYSQL INSERT 在 php() 中不起作用 [关闭]
【发布时间】:2012-12-18 08:16:01
【问题描述】:

代码如下:

    <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 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'Key, Name) VALUES (NULL,'Change')' 附近使用正确的语法

【问题讨论】:

  • 连接建立了吗?
  • 请为我们回显 sql 字符串
  • 循环查询...这是最糟糕的使用方法
  • 你知道这是什么意思吗? for($i=8;$i&lt;75;$i++) { 67query 在单页加载中......它会降低你的性能......并在服务器上造成巨大的负载
  • Shaquin 正确指出了该错误,已建立连接。 @NullPointer 我是 MySQL 新手,所以我刚刚制作了一个 php 页面,用于将 75 个条目上传到数据库中。以后不会加载此 php 页面! :)

标签: php mysql cpanel


【解决方案1】:

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

【讨论】:

  • 谢谢,更改列名效果很好!
【解决方案2】:

您的字段名称Key 是reserved word,因此查询将失败。您可以使用反引号来更正它:

INSERT INTO moviek5q_Quote.Categories (`Key`, Name)

【讨论】:

    【解决方案3】:

    提示,尝试使用 PDO 或 MySQLi,mysql_ 代码现已弃用,将来可能无法使用。

    【讨论】:

    • 是的,mysql 扩展名太旧了,不推荐。
    • 会调查的!谢谢
    猜你喜欢
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2013-07-19
    相关资源
    最近更新 更多