Php 插入多个数据
我如何做错我想从阵列插入到db数据:Php 插入多个数据,php,mysql,insert,Php,Mysql,Insert,我如何做错我想从阵列插入到db数据: $tabb = array( 'name' => 'test', 'login' => 'testt'); 但我不能使用SET,因为查询的结尾是char public function insert($table, $values){ if($this->database){ print_r($values); $we = 'INSERT INTO '. $table .' SET '; foreach($values as $
$tabb = array(
'name' => 'test',
'login' => 'testt');
但我不能使用SET,因为查询的结尾是char
public function insert($table, $values){
if($this->database){
print_r($values);
$we = 'INSERT INTO '. $table .' SET ';
foreach($values as $value => $key) {
$we .= ' ('. $value .' = "'. $key .'") ';
}
print $we;
mysql_query($we);
}
return true;
}
我打印$we:
INSERT INTO user SET (name = "test") (login = "testt")
不行,请帮忙
php我真的建议避免
SET
。它的普遍性要低得多,如果你能在不常见和普通之间做出选择,就要始终遵循普通原则——这意味着你的社区能提供更广泛、更快、更好的支持
以下是您在没有它的情况下如何处理该问题:
如果用户
表中只有两列,则只需使用值
,后跟逗号分隔的数据集列表:
INSERT INTO user VALUES ("test","testt"),("test2","testt2")
您的函数看起来并不是针对这一点的,但了解这两种方法都是一件好事
但看起来您是按列名插入的(一般来说这是个好主意):
使用PHP,这将成为:
$items = array_map('mysql_real_escape_string', $values);
$items = '(\'' . implode( '\',\'', $items ) . '\')';
$q = 'INSERT INTO '.
$table .
// using implode with array_keys assumes that you know all of the keys
// ahead of time. If you don't, I MUST suggest your re-think your code
// omit the following line if you want to follow the first SQL example
' (' . implode( ',', array_keys( $values ) . ') '.
' VALUES ' .
$items;
您需要将
(name=“test”)(login=“testt”)
与“,”分开,在它们之间(name=“test”),(login=“testt”)
另一种方法是:插入用户(名称、登录名)值(“test”、“testt”)
或者,如果你想耍花招:
public function insert($table, $values)
{
if($this->database)
{
print_r($values);
$we = "insert into `".$table. "` (`". implode('`,`',array_keys($fields))."`) values ('".implode("','",array_map('mysql_real_escape_string', $fields))."');";
print $we;
mysql_query($we);
}
return true;
}
如何从foreach命名和登录?MySQL还允许设置语法。
public function insert($table, $values)
{
if($this->database)
{
print_r($values);
$we = 'INSERT INTO '. $table .' SET ';
$sep = '';
foreach($values as $value => $key)
{
$we .= $sep . ' ('. $value .' = "'. mysql_real_escape_string($key) .'") ';
$sep = ',';
}
print $we;
mysql_query($we);
}
return true;
}
public function insert($table, $values)
{
if($this->database)
{
print_r($values);
$we = "insert into `".$table. "` (`". implode('`,`',array_keys($fields))."`) values ('".implode("','",array_map('mysql_real_escape_string', $fields))."');";
print $we;
mysql_query($we);
}
return true;
}
public function insert($table, $values){
$fields = array();
$data = array();
foreach ($values as $key => $val) {
$fields[] = mysql_real_escape_string($key);
$data[] = mysql_real_escape_string($val);
}
$fields = implode(',', $fields);
$data = implode(',', $data)
$sql = "INSERT INTO $table ($fields) VALUES ($data);"
mysql_query($sql) or die(mysql_error());
}