对于你们中的一些人来说这可能是非常基本的但我真的无法理解@。@
我想在此行中插入$x
:(".implode(",",array_keys($data)).")
和$rid
到$values = implode("','", array_values($data));
代码:
if(count($data)){
$x = "rid";
$rid=$_SESSION['rid'];
$values = implode("','", array_values($data));
mysql_query("insert into appetizer (".implode(",",array_keys($data)).") values ('".$values."')");
if(mysql_insert_id()) return mysql_insert_id();
return 0;
}
我怎么可能这样做?
对noob问题道歉:3
答案 0 :(得分:2)
如果您想推送这些值并将其设为键对值并且不介意任何订单,请相应地进行分配。
在数组中推送值,然后内爆。无需对内爆字符串进行更改。
if(count($data) > 0){
// key-pair values to be appended
$x = "rid"; // the key
$rid = $_SESSION['rid']; // the value
$data[$x] = $rid; // just assign
$values = implode("','", array_values($data));
mysql_query("INSERT INTO appetizer (".implode(",",array_keys($data)).") values ('".$values."')");
return mysql_insert_id();
}
我强烈建议使用更新的API,MySQLi或PDO。
if(count($data) > 0){
// key-pair values to be appended
$x = "rid"; // the key
$rid = $_SESSION['rid']; // the value
$data = array_merge(array($x => $rid), $data);
$keys = array_keys($data);
$values = array_values($data);
$sql = 'INSERT INTO appetizer (' . implode(',', $keys) . ') VALUES (' . rtrim(str_repeat('?, ', count($keys)), ', ') . ')';
$db = new PDO('mysql:host=localhost;dbname=database_name', 'username', 'password');
$insert = $db->prepare($sql);
$insert->execute($values);
return $db->lastInsertId();
}
旁注:如果您希望首先使用ID,则可以使用另一种方式:
$data = array_merge(array($x => $rid), $data);