我有每3小时运行一次的PHP脚本,该脚本会获取亚马逊mws订单并将其保存到我的数据库中。
但是在我向表中插入订单之前,我首先检查该订单是否存在
SELECT COUNT(*) total FROM orders WHERE transaction_id = "XXXXXXXXX"
但是有时候即使有订单存在,查询也会返回0。如果返回0,我会将订单插入到我的表中,最终将复制数据。
这个实例发生在我的其他PHP脚本中,我不理解这个问题。
答案 0 :(得分:0)
您应使用称为 EXISTS 的名称检查案例顺序中是否存在行。
SELECT EXISTS(SELECT * FROM table1 WHERE ...);
SELECT EXISTS(SELECT * FROM tableName WHERE condition);
答案 1 :(得分:0)
如果您的数据库使用主从模式,则可以尝试强制主数据库进行查询。
您也可以使用“ INSERT IGNORE INTO order ....”来忽略重复项。
答案 2 :(得分:0)
您的MySQL查询中可能有一个错误。我创建了一个测试表并编写一些代码以打印查询的结果,该查询工作正常。
您可能没有正确使用报价,因为这是大多数错误 用PHP处理查询的时间
这是代码
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "practise";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_errno());
}
$sql = "SELECT count(*) from test where title='Hello'";
$result = mysqli_query($conn,$sql);
$new =mysqli_fetch_array($result);
echo $new[0];
?>
</body>
</html>
并且:
Image of the table where I am executing the query
针对MySQL查询的输出为:
2
该代码运行完美。如有其他疑问,请分享您的代码,我们非常乐意为您提供帮助。