我的SQL表中具有列名称的PHP数组。我还有一个要分配给这些列的值的数组。如何将其放入SQL查询中。目前,im像这样写出每列标题:
$query = "INSERT INTO `first_page_data`(`a`, `b`, `c`, `d`, `e`, `f`, `g`, `h`) VALUES ('$1','$2','$3','$4','$5','$6','$7','$8')";
但是必须有一种只使用数组的方法吗?
另外,是否可以定义键/值对以将两对数据保持在一起,然后使用它们插入数据库?在SQL查询中该如何格式化?
这是另一个类似的解决方案。
<?php function mysql_insert_array($table, $data, $exclude = array()) { $fields = $values = array(); if( !is_array($exclude) ) $exclude = array($exclude); foreach( array_keys($data) as $key ) { if( !in_array($key, $exclude) ) { $fields[] = "`$key`"; $values[] = "'" . mysql_real_escape_string($data[$key]) . "'"; } } $fields = implode(",", $fields); $values = implode(",", $values); if( mysql_query("INSERT INTO `$table` ($fields) VALUES ($values)") ) { return array( "mysql_error" => false, "mysql_insert_id" => mysql_insert_id(), "mysql_affected_rows" => mysql_affected_rows(), "mysql_info" => mysql_info() ); } else { return array( "mysql_error" => mysql_error() ); } } ?>
<?php // Open database here // Let's pretend these values were passed by a form $_POST['name'] = "Bob Marley"; $_POST['country'] = "Jamaica"; $_POST['music'] = "Reggae"; $_POST['submit'] = "Submit"; // Insert all the values of $_POST into the database table `artists`, except // for $_POST['submit']. Remember, field names are determined by array keys! $result = mysql_insert_array("artists", $_POST, "submit"); // Results if( $result['mysql_error'] ) { echo "Query Failed: " . $result['mysql_error']; } else { echo "Query Succeeded! <br />"; echo "<pre>"; print_r($result); echo "</pre>"; } // Close database ?>
来源 :将数组插入MySQL数据库表