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
Post a Comment