0

很奇怪。我看不出这里出了什么问题。与 MySQL 数据库的连接已建立,但不会从 PHP 插入。如果我在 Phpmyadmin 中运行查询就可以了。

$rawquery = "
    INSERT INTO $log_table_name
        (ref, timestamp, txn_id, email, item_name, item_number, custom, mc_gross, mc_currency, paypal_message)
    VALUES
        (NULL, CURRENT_TIMESTAMP, '$txn_id', '$payer_email', '$item_name', '$item_number', '$custom', '$payment_amount', '$payment_currency', 'INVALID');
";
echo $rawquery;
$query = mysql_query($link, $rawquery) or die('Could not access table');

产生:

INSERT INTO wp_ipn_log
    (ref, timestamp, txn_id, email, item_name, item_number, custom, mc_gross, mc_currency, paypal_message)
VALUES
    (NULL, CURRENT_TIMESTAMP, '', '', '', '', '', '', '', 'INVALID');Could not access table

我期待 INVALID 消息,我只想将它插入数据库。

问题是查询的格式,还是数据库有问题,还是其他问题?

附加信息(根据 vinodadhikary 的要求):

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db(DB_NAME, $link) or die ("Could not open db ".mysql_error());

这工作正常。

4

2 回答 2

2

在尝试调试代码时,在您的而不是通用字符串中使用mysql_error()/会很有帮助 - 。mysqli_error($link)die()die('Could not access table')

另外,mysql/mysqli中查询/链接的顺序也不一样

mysql_querymysql_query(query,link),所以你的代码应该是

$query = mysql_query($rawquery,$link) or die(mysql_error()); 

whilemysqli_querymysqli_query(link, query),所以你的代码应该是

$query = mysqli_query($link, $rawquery) or die(mysqli_error($link));
于 2013-08-17T16:38:41.497 回答
0

需要检查一些事情,

1 - 引用字段名称允许为 NULL 吗?
2-paypal_message 检查这个 varchar 还是文本,检查长度也在数据库中吗?
3 - 您可以尝试从每个值中删除 '' 吗?
4 - 最后检查空是否允许?

您可以尝试使用一些示例值而不是空值。检查该查询是否有效,以便您可以接近解决方案。

希望这些东西对你有帮助

谢谢

于 2013-08-17T17:02:26.380 回答