gpt4 book ai didi

php foreach循环只插入部分记录到mysql表中

转载 作者:行者123 更新时间:2023-11-30 23:36:33 25 4
gpt4 key购买 nike

在我的 mysql 数据库中,我只获得了 id 26、16、17、18、19、22、23、24 的记录。这是为什么,我的代码中有什么错误吗?我不知道,请帮忙:(

<?
$connect = mysql_connect('localhost', 'dbname', 'pass');
if (!$connect) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("dbname") or die(mysql_error());

mysql_query("TRUNCATE TABLE anchors");

$blog_ids = array(
'anchor 1' => '1',
'anchor 2' => '2',
'anchor 3' => '3',
'anchor 2' => '4',
'anchor 2' => '5',
'anchor 4' => '6',
'anchor 5' => '7',
'anchor 6' => '8',
'anchor 7' => '9',
'anchor 8' => '10',
'anchor 9' => '13',
'anchor 10' => '14',
'anchor 11' => '16',
'anchor 12' => '17',
'anchor 13' => '18',
'anchor 14' => '20',
'anchor 15' => '21',
'anchor 16' => '22',
'anchor 17' => '23',
'anchor 18' => '24',
'anchor 19' => '25',
'anchor 20' => '26'
);
foreach($blog_ids as $anchor => $blog_id){
$anchor_url = 'http://www.site.com';
mysql_query("INSERT INTO anchors (blog_id, anchor_url, anchor) VALUES ('$blog_id', '$anchor_url', '$anchor')");
}

mysql_close($connect);
?>

非常喜欢,这里是表结构:

CREATE TABLE `anchors` (
`id` int(11) NOT NULL auto_increment,
`blog_id` text,
`anchor_url` text,
`anchor` text,
PRIMARY KEY (`id`),
FULLTEXT KEY `posttitle` (`blog_id`,`anchor_url`,`anchor`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8

最佳答案

检查查询是否真的可以执行。

if (mysql_query("INSERT INTO anchors (blog_id, anchor_url, anchor) VALUES ('$blog_id', '$anchor_url', '$anchor')") === FALSE) {
echo 'failed: ' . mysql_error() . "\n";
}

再者,表结构是怎样的? SHOW CREATE TABLE anchors; 会帮助你。如果您有唯一键或主键集,则该值确实需要是唯一的,并且重复会失败并出现错误。

编辑:问题不在脚本中,而在数据中。为了在 PHP 中拥有数据,需要调整存储。

$blog_ids = array(
array(
'anchor' => 'anchor 1',
'blog_id' => '1'
),
array(
'anchor' => 'anchor 2',
'blog_id' => '2'
),

);

foreach ($blog_ids as $blog_id_array) {
$blog_id = $blog_id_array['blog_id'];
$anchor = $blog_id_array['anchor'];
$anchor_url = 'http://www.site.com';

if (mysql_query("INSERT INTO anchors (blog_id, anchor_url, anchor) VALUES ('$blog_id', '$anchor_url', '$anchor')") === FALSE) {
echo 'failed: ' . mysql_error() . "\n";
}
}

关于php foreach循环只插入部分记录到mysql表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6892721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com