MySQL INSERT查询在Phpmyadmin中工作,但在PHP中不起作用

时间:2013-08-17 15:56:45

标签: php mysql phpmyadmin

很奇怪。我看不出这里出了什么问题。已经建立了与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());

这很好。

2 个答案:

答案 0 :(得分:2)

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

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

mysql_querymysql_query(query,link),因此您的代码应为

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

mysqli_querymysqli_query(link, query),因此您的代码应为

$query = mysqli_query($link, $rawquery) or die(mysqli_error($link));

答案 1 :(得分:0)

需要检查一下这个,

1 - ref字段名称是否允许NULL?
2 - paypal_message检查是这个varchar或文本和检查长度也在数据库中?
3 - 您可以尝试从每个值中删除''。
4 - 允许最后一次空检查?

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

希望这些事能对你有所帮助

感谢