Insert array data into MySQL database using PHP -


i'm new php mysql. i'm working on huge data based project. created arrays every data in php. want insert mysql database.

   $data =   array (         [1] => array(             'title' => "xxxxx",             'content' => "xxxxx",             'category' => "xxxxx",         ),          [2] => array(             'title' => "xxxxx",             'content' => "xxxxx",             'category' => "xxxxx",         ),          [3] => array(             'title' => "xxxxx",             'content' => "xxxxx",             'category' => "xxxxx",         ),       ); 

i tried below code doesn't work.

if(is_array($data)){      $sql = "insert `table`( `title`, `content`, `category`) values";      $valuesarr = array();     foreach($data $row){          $title = mysql_real_escape_string( $row['title'] );         $content = mysql_real_escape_string( $row['content'] );         $category = mysql_real_escape_string( $row['category'] );           $valuesarr[] = "('title', 'content', 'category')";     }      $sql .= implode(',', $valuesarr);      mysql_query($sql) or exit(mysql_error());  } 

the below code works fine inserts data given values. want insert arrays.

<?php $servername = "localhost"; $username = "xxxxx"; $password = "xxxxxxx"; $db_name = "xxxxxxxxx";  // create connection $link = new mysqli($servername, $username, $password, $db_name);  if(!$link){ echo "failed" .mysqli_connect_error(); }  $title="john"; $content="john"; $cateogry="john";   $query = "insert table (title, content,category) values ('$title', '$content','$category')";  if(mysqli_query($link,$query)) { echo "insertion successful"; } else { echo "error: " .$query . "<br>" . mysqli_error($link); }     mysqli_close($link);  ?> 

update

<?php $servername = "localhost"; $username = "xxxx"; $password = "xxxxx"; $db_name = "xxxxxxx";  // create connection $link = mysql_connect($servername, $username, $password, $db_name);  if(!$link){ echo "failed" .mysql_connect_error(); }    if(is_array($data)){      $sql = "insert `table`( `title`, `content`, `category`) values";      $valuesarr = array();     foreach($data $row){          $title = mysql_real_escape_string( $row['title'] );         $content = mysql_real_escape_string( $row['content'] );         $category = mysql_real_escape_string( $row['category'] );           $valuesarr[] = "('$title', '$content', '$category')";     }      $sql .= implode('title',  'content' , 'category' , $valuesarr);      mysql_query($sql) or exit(mysql_error());  } ?> 

it says no database selected

2nd update

<?php $servername = "localhost"; $username = "xxxx"; $password = "xxxxx"; $db_name = "xxxxx";  // create connection $link = mysql_connect($servername, $username, $password, $db_name);  if(!$link){ echo "failed" .mysql_connect_error(); } mysql_select_db($db_name);    $data =   array (         [1] => array(             'eng_title' => "john",             'tel_title' => "john",             'category' => "john",          ),          [2] => array(             'eng_title' => "john",             'tel_title' => "john",             'category' => "john",         ),          [3] => array(             'eng_title' => "john",             'tel_title' => "john",             'category' => "john",         ),       );  if(is_array($data)){      $sql = "insert `table_a`( `eng_title`, `tel_title`, `category`) values";      $valuesarr = array();     foreach($data $row){          $eng_title = mysql_real_escape_string( $row['eng_title'] );         $tel_title = mysql_real_escape_string( $row['tel_title'] );         $category = mysql_real_escape_string( $row['category'] );           $valuesarr[] = "('$eng_title', '$tel_title', '$category')";     }     $sql .= implode(',', $valuesarr);      mysql_query($sql) or exit(mysql_error());  }    ?> 

you're not using variables when assign $valuesarr[], because forgot $ prefixes. should be:

$valuesarr[] = "('$title', '$content', '$category')"; 

the reason "no database selected" error because never called mysql_select_db()

$link = mysql_connect($servername, $username, $password);  if(!$link){     die("failed" .mysql_connect_error()); } mysql_select_db($db_name); 

you can't give database argument mysql_connect (you're confusing mysqli_connect -- should convert mysql mysqli or pdo).

your implode() call wrong. should be:

$sql .= implode(',', $valuesarr); 

Comments