开发者

PHP foreach insert statement issue with arrays

开发者 https://www.devze.com 2023-02-22 23:35 出处:网络
Hey guys, i\'m currently learning php and I need to do this $connection = mysql_open(); $likes= array();

Hey guys, i'm currently learning php and I need to do this

  $connection = mysql_open();
  $likes= array();
  foreach($likes as $like)
  {

  $insert3 = "insert into ProfileInterests " .
    "values ('$id', '$like', null)";
  $result3 = @ mysql_query ($insert3, $connection)
    or showerror();

  }
  mysql_close($connection)
    or showerror();

For some reason this does not work =/ I don't know why. $likes is an array which was a 开发者_如何学运维user input. I need it to insert into the table it multiple times until all of the things in the array are in.

EDIT I fixed the issue where I was closing it in my foreach loop. mysql_open is my own function btw.

Any ideas?


For one $likes is an empty array in your example, I am assuming you fix that in the code you run.

The second is you close the MySQL connection the first the time the loop would run, which would prevent subsequent MySQL queries from running.


there's no such function as mysql_open

you may need mysql_connect

also $likes variable is empty. so no foreach iterations will execute.


You close the connection within the foreach loop.


Here is the proper formatted code to insert data...You can use this.

// DATABASE CONNECTION

$conn=mysql_connect(HOST,USER,PASS);
$link=mysql_select_db(DATABASE_NAME,$conn);

// function to insert data ..here $tableName is name of table and $valuesArray array of user input

function insertData($tableName,$valuesArray) {

        $sqlInsert="";
        $sqlValues="";

        $arrayKeys = array_keys($valuesArray);
        for($i=0;$i < count($arrayKeys);$i++)
        {
            $sqlInsert .= $arrayKeys[$i].",";
            $sqlValues .= '"'.$valuesArray[$arrayKeys[$i]].'",';
        }

        if($sqlInsert != "")
        {
            $sqlInsert = substr($sqlInsert,0,strlen($sqlInsert)-1);
            $sqlValues = substr($sqlValues,0,strlen($sqlValues)-1);
        }

        $sSql = "INSERT INTO $tableName ($sqlInsert) VALUES ($sqlValues)";  
        $inser_general_result=mysql_query($sSql) or die(mysql_error());
        $lastID=mysql_insert_id();
        $_false="0";
        $_true="1";
        if(mysql_affected_rows()=='0')
        {
            return $_false;
        }
        else
        {
            return $lastID;
        }
    }

// End Of Function


While many PHP newbies (myself included) begin working with databases from good ole' mysql_connect/query/etc., I can't help suggest that you look into PDO, PHP Data Objects. Depending on your prior knowledge and programming background, there may be a steeper learning curve. However, it's much more powerful, extensible, etc.; I use PDO in all my production code database wheelings-and-dealings now.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号