请帮忙。我认为自己对MySql&有一个合理的理解。 PHP,但对于我的生活,我无法弄清楚为什么这段代码两次插入同一行。我真的把它剥离回以下代码:
<?php
$query = "INSERT INTO `cs_social_alerts` (email) VALUES ('test@test.com')";
mysql_query($query);
?>
它插入的MySQL表中有10列,但即使查询中提到了所有这些列,它仍会在两行上插入“test@test.com”,并带有单独的主键。
我已经创建了一个新的Wordpress页面来运行它,因为所有其他页面似乎运行正常,没有重复。
我做了一些谷歌搜索没有找到任何帮助 - 无论如何我可以检查第二个查询来自哪里?我已经在上面的代码中出演了大约一个小时,现在看不出任何问题。
任何想法/帮助很多人赞赏!
由于
-----编辑-----
所以这是调试回溯的结果,正在运行的代码实际上是上面的两行 - 我已经为了安全性而清空了域。谁能看到任何干扰?我不是PHP专家,并且所有额外的Wordpress内容都被抛入,我不确定是什么!谢谢你们
$ myQuery =“INSERT INTO cs_social_alerts
(电子邮件)VALUES('test@test.com')”;
的mysql_query($更改为MyQuery);
debug_print_backtrace()
&GT;
)[/ var / sites / c / ****。com / public_html / wp-content / plugins / wp-exec-php / wp-exec-php.php:692]
$ myQuery =“INSERT INTO cs_social_alerts
(电子邮件)VALUES('test@test.com')”;
的mysql_query($更改为MyQuery);
debug_print_backtrace()
&GT;
)
$ myQuery =“INSERT INTO cs_social_alerts
(电子邮件)VALUES('test@test.com')”;
的mysql_query($更改为MyQuery);
debug_print_backtrace()
&GT;
))调用[/ var / sites / c / * .com / public_html / wp-includes / plugin.php:192]
$ myQuery =“INSERT INTO cs_social_alerts
(电子邮件)VALUES('test@test.com')”;
的mysql_query($更改为MyQuery);
debug_print_backtrace()
&GT;
答案 0 :(得分:0)
使用PHP函数debug_print_backtrace()找出调用代码的位置。
答案 1 :(得分:0)
尝试PHP数据对象(PDO)。使用mysql_ *函数已经过时了。
这些变量初始化应该在您使用php_parse_ini()来获取数据的ini文件中定义。
<?php
$host = "host=localhost";
$name = ";dbname=name_of_db";
$user = "user";
$pass = "pass";
$conn = new PDO("mysqli:".$host.$name,$user,$pass);
$stmt = $conn->prepare("INSERT INTO `cs_social_alerts` (email) VALUES (:email)");
$stmt->bindParam(':email', $email);
$stmt->execute();
此外,如果您想知道此代码是否多次运行。尝试设置$ _SESSION变量。 I.E. $ _SESSION [&#39; count&#39;] = 0;然后就在execute()之前放入$ _SESSION [&#39; count&#39;] ++;最后,在代码末尾转储$ _SESSION的值以确定值是什么。
var_dump($_SESSION);die();
答案 2 :(得分:0)
您是否尝试过其他浏览器?我有很多不好的经历,因为我在浏览器中的一些扩展程序再次请求页面。
即使这不是您的问题,我认为您应该检查外部因素,因为此代码不能插入两行。当然,除非它被召唤两次。