[英]inserting serialized array in mysql
我试图将序列化的数组插入没有列名的mysql中,这可能吗?
我打算在具有动态文本框数量的函数中使用此函数,因此我将只调用该函数并传递表名,然后按顺序插入数据库中。
这是我目前拥有的代码:
<form action = "" method = "POST">
Username: <input required type = "text" name = "register[]" / ><br />
Password: <input required type = "text" name = "register[]" / ><br />
Usertype: <input required type = "text" name = "register[]" / ><br />
Status: <input required type = "text" name = "register[]" / ><br />
<input type = "submit" name = "add" value = "add" / >
</form>
if(isset($_POST['add']))
{
$reg = serialize($_POST['register']); //takes the data from a post operation...
$register = mysql_real_escape_string($reg);
$query = mysql_query("INSERT INTO user VALUES('$register')");
}
工作查询:
$query = mysql_query("INSERT INTO users (username,password,usertype,status) VALUES('$register','2','3','4')");
输出:
一个:4:{I 0,S:1: “1”; I:1; S:1: “1”; I:2; S:1: “1”; I:3; S:1:” 1“;} 2 3 4
您不能使用PHP serialize()
方便地将多个数据插入多个MySQL字段。 serialze()
将复杂的php类型转换为单个字符串。 一个字符串。 您可以使用它将具有所有这些值的数组存储到一个文本字段中,但这不是您想要的。
mysql_query("INSERT INTO users (username,password,usertype,status)
VALUES('".mysql_real_escape_query($_POST['register'][0])."',
'".mysql_real_escape_query($_POST['register'][1])."',
'".mysql_real_escape_query($_POST['register'][2])."',
'".mysql_real_escape_query($_POST['register'][3])."' )");
或者使用PDO:
$dbh = new PDO('mysql:dbname=test;host=localhost','root','pass');
$sth = $dbh->prepare('INSERT INTO users (username,password,usertype,status)
VALUES(?,?,?,?)');
$sth->execute($_POST['register']);
您忘了包含表的字段名
$query = mysql_query("INSERT INTO user(username,password,usertype,status) VALUES('$register')");
我做了工作,但使用了不同的方法我使用了爆破法,但它是相同的
$register = "'" . implode("','", $_POST['register']) . "'";
$query = mysql_query("INSERT INTO users VALUES(null,$register)");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.