在MySQL数据库中存储PHP数组的内容
我在mysql中存储数组内容时遇到问题 我正在使用下面的代码在MySQL数据库中存储PHP数组的内容,php,mysql,Php,Mysql,我在mysql中存储数组内容时遇到问题 我正在使用下面的代码 foreach($found_entry as $key => $sd) { echo "$key => $sd <br>"; $insert_found_row = mysql_query("INSERT INTO myTable values ID = \"$sd[0]\" ,Folder = \"NULL\", Tsi = \"$sd[11]\", PT= \"NA\" ") or di
foreach($found_entry as $key => $sd) {
echo "$key => $sd <br>";
$insert_found_row = mysql_query("INSERT INTO myTable values ID = \"$sd[0]\" ,Folder = \"NULL\", Tsi = \"$sd[11]\", PT= \"NA\" ") or die(mysql_error());
echo "$sd";
如果使用$sd[0],则只显示第一个字符。
$sd是数组的值(例如“ST10928”),但您将该值视为数组本身,因此$sd[0]必须仅返回第一个元素(=字母)
如果您试图将数组中的值插入数据库(而不是遍历数组并对值进行切片),那么您可能应该使用
$found\u entry[0]
而不是$sd[0]
和$found\u entry[11]
来查询$sd[11]
?您的查询语法错误。使用设置
而不是值
。另外,您可能根本不需要foreach循环,因为您同时引用了$sd[0]
和$sd[11]
。试着这样做:
$query = sprintf("INSERT INTO
myTable
SET
ID = '%s',
folder = NULL,
Tsi = '%s',
PT = 'NA'",
mysql_real_escape_string($found_entry[0]),
mysql_real_escape_string($found_entry[11])
);
mysql_query($query) or die(mysql_error());
使用PHP数组向MySQL添加数据
将数据插入MySQL 在代码中,您正在为每个字段执行插入操作 但是,在大多数情况下,您事先知道字段名,因此可以对所有字段进行一次插入
$sql = 'INSERT INTO tbl_name (field_a,field_b,field_c) VALUES('.$found_entry['field_a'].','.$found_entry['field_b'].','.$found_entry['field_c'].');';
这样可以减少所需的查询数量,从而使代码运行更快,使用更少的资源
默认值
当一个值未知且DB应该插入一个默认值时,您可以传递NULL。那么实际上它有什么问题吗?如果我使用
$sd[0]
,只显示第一个字符。您会得到什么错误?此外,您的数据库布局也会有所帮助。我猜您在转义数据时遇到了问题,但是没有更多的信息,这很难说。是的,您是对的$sd是数组的值,但我在每个循环中得到不同的值,我不知道如何在mysqlI的不同字段中存储这些不同的值。我编辑了我的答案,尝试使用$found_entry而不是$sd,并更改循环以执行每个“$found_entry”的查询。
$sql = 'INSERT INTO tbl_name (field_a,field_b,field_c) VALUES('.$found_entry['field_a'].','.$found_entry['field_b'].','.$found_entry['field_c'].');';