【问题标题】:PHP Mysql Query (INSERT) IssuePHP Mysql 查询(插入)问题
【发布时间】:2013-04-14 13:29:36
【问题描述】:

我遇到以下 MySQL 查询问题:

我的脚本生成这个作为示例查询:

INSERT INTO `contacts`(`name`, `phone`, `email`, `city`, `state`, `date`) VALUES ('Test2', '123-456-7890', 'test@test.com', 'mesa', 'az', '04-14-2013')

如果我直接进入 PHPMyA,效果很好。但是,我试图用来从我的网站发送查询的 PHP 脚本不起作用,我无法弄清楚。这里是:

$sql = "INSERT INTO `contacts`(`name`, `phone`, `email`, `city`, `state`, `date`) VALUES ('$name', '$phone', '$email', '$city', '$state', '$date')";

mysql_query($sql);

$result = mysql_query($sql);

if($result)
{
    echo("<br>Data Input OK");
} 
else
{
   echo("<br>Data Input Failed");
}

没有任何东西进入 MySQL DB,也没有显示 PHP 错误,但是,如果我回显 $sql,我会得到我之前发布的确切查询。

【问题讨论】:

标签: php mysql insert insert-into


【解决方案1】:

只需删除代码中的单行 mysql_query($sql); 就可以了。但是您最好开始练习 PHP MySQLi,它代表 PHP MySQL 改进,例如:

$con = mysqli_connect($host, $user, $password, $password);

$sql = "INSERT INTO `contacts`(`name`, `phone`, `email`, `city`, `state`, `date`) VALUES ('$name', '$phone', '$email', '$city', '$state', '$date')";

$result = mysqli_query($con, $sql);

if($result) {
    echo("<br>Data Input OK");
} else {
    echo("<br>Data Input Failed");
}

【讨论】:

  • 问题不能重复使用mysql_query($sql)
【解决方案2】:
$sql = 'INSERT INTO Table_name (`id`, `name`) VALUES ("1", "php");

【讨论】:

    【解决方案3】:

    您在脚本中执行$sql 两次导致错误,请删除

    mysql_query($sql);
    

    它已经准备好了

    我也建议停止使用mysql_query 请切换到mysqliPDO

    【讨论】:

    • 一次清理只运行一次查询,$result = mysql_query($sql) or die(mysql_error());添加了我收到消息“未选择数据库”,我发现这很令人困惑,因为我盯着我的 mysql_select_db 行...不确定错误在哪里,但是是时候通过连接字符串回溯我的方式了
    【解决方案4】:

    你确定有一个有效的连接(..mysql_connect())吗?尝试使用像这样的完整语法..

    $conn = mysql_connect(...);
    $result = mysql_query($query, $conn);
    

    还可以在执行语句后尝试强制提交 -

    $mysql_query("COMMIT", $conn);
    

    【讨论】:

      【解决方案5】:

      您正在运行 mysql_query 两次。错误的原因。尝试运行以下代码。

      $sql = "INSERT INTO `contacts`(`name`, `phone`, `email`, `city`, `state`, `date`) VALUES ('$name', '$phone', '$email', '$city', '$state', '$date')";
      
      $result = mysql_query($sql) or die(mysql_error());
      
      if($result){
          echo("<br>Data Input OK");
      } else{
          echo("<br>Data Input Failed");
      }
      

      【讨论】:

      • 同意,但这不是这里的主要问题
      • 查询运行两次不是 OP 询问的错误,即使运行一次查询也看不到数据
      • 尝试使用$result = mysql_query($sql) or die(mysql_error());调试代码检查并查看导致问题的原因。
      【解决方案6】:

      使用这个

      "INSERT INTO `contacts`(`name`, `phone`, `email`, `city`, `state`, `date`) VALUES ('$_POST[name]', '$_POST[phone]', '$_POST[email]', '$_POST[city]', '$_POST[state]', '$_POST[date]')";
      

      【讨论】:

        【解决方案7】:

        尝试使用mysql_query($sql,$con); 而不是mysql_query($sql);

        【讨论】:

          【解决方案8】:
          if(isset($_POST['submit']))
          {
             $name=$_POST['name'];
             $age=$_POST['age'];
             $address=$_POST['address'];
          
             $ins="insert into table_name(`name`,`age`,`address`)values('".$name."','".$age."','".$address."')";
             mysql_query($ins);
             echo 'data inserted successfully';
          } 
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-04-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多