在php中将数据从数组插入mysql

在php中将数据从数组插入mysql,php,mysql,sql,arrays,Php,Mysql,Sql,Arrays,我有一个数据库test,表名为table,有两列user和email。 我下面的代码有什么问题?我无法将数组$u添加到我的数据库中 <?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("test", $con); $use

我有一个数据库
test
,表名为
table
,有两列
user
email
。 我下面的代码有什么问题?我无法将数组
$u
添加到我的数据库中

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

    mysql_select_db("test", $con);

    $user = "safwan";
    $email = "esafw@jdjd.com";

    $u = array ( user => $user,
                    email => $email
                   );

    $q =   "INSERT INTO table  VALUES ($u)";

    mysql_query($q) OR die(mysql_error());

    mysql_close($con);
    ?> 

请查看MySQL数据类型

您必须在数组上循环并单独添加元素。我还建议使用诸如MySQLi或PDOs之类的其他工具来实现安全性

事实上,使用PDO可以“添加阵列”(因为它的设计方式)


我不打算讲太多细节,因为你真的应该学习一种新技术。准备好的语句和SQL注入之类的东西更安全。

请查看MySQL数据类型

您必须在数组上循环并单独添加元素。我还建议使用诸如MySQLi或PDOs之类的其他工具来实现安全性

事实上,使用PDO可以“添加阵列”(因为它的设计方式)


我不打算讲太多细节,因为你真的应该学习一种新技术。准备好的语句和SQL注入之类的东西更安全。

您有几个问题:

  • 您正在尝试将数组直接插入数据库。您需要单独访问这些值

  • 您应该在字符串周围使用引号,这包括当字符串是数组中的键时

  • 您需要了解SQL注入

  • >p>从

    以后,您应该考虑迁移远离MySQL函数。
  • table是一个MySQL关键字,如果它实际上是表名,则需要反勾号

    $user, 'email'=>$email ); $q=“插入到表(用户、电子邮件)值(“.mysql\u real\u escape\u string($u['user'])。”,“.mysql\u real\u escape\u string($u['email'])。”)”; mysql_query($q)或die(mysql_error()); mysql_close($con); ?>
  • 或:


    您有几个问题:

  • 您正在尝试将数组直接插入数据库。您需要单独访问这些值

  • 您应该在字符串周围使用引号,这包括当字符串是数组中的键时

  • 您需要了解SQL注入

  • >p>从

    以后,您应该考虑迁移远离MySQL函数。
  • table是一个MySQL关键字,如果它实际上是表名,则需要反勾号

    $user, 'email'=>$email ); $q=“插入到表(用户、电子邮件)值(“.mysql\u real\u escape\u string($u['user'])。”,“.mysql\u real\u escape\u string($u['email'])。”)”; mysql_query($q)或die(mysql_error()); mysql_close($con); ?>
  • 或:


    尝试回显您的查询。它将显示为:

    "INSERT INTO table  VALUES (array)".
    
    当然是你不想要的

    您可以通过在数组中循环或直接使用以下命令来构造插入查询:

    INSERT INTO table  VALUES ($user, $email)
    

    试着回答你的问题。它将显示为:

    "INSERT INTO table  VALUES (array)".
    
    当然是你不想要的

    您可以通过在数组中循环或直接使用以下命令来构造插入查询:

    INSERT INTO table  VALUES ($user, $email)
    

    因为。。这是一个数组?同时编辑:停止使用mysql_*函数,改用PDO或mysqli_*函数。(您很容易受到mysql注入的攻击)因为。。这是一个数组?同时编辑:停止使用mysql_*函数,改用PDO或mysqli_*函数。(你很容易受到mysql注入的攻击)4
    table
    是一个MySQL关键字,如果它实际上是表名,则需要反勾号。我已将其添加到不断增长的列表中:)4
    table
    是一个MySQL关键字,如果它实际上是表名,则需要反勾号。我已将其添加到不断增长的列表中:)