MySQL SELECT有时甚至找不到任何东西

时间:2019-02-16 03:06:34

标签: php mysql

我有每3小时运行一次的PHP脚本,该脚本会获取亚马逊mws订单并将其保存到我的数据库中。

但是在我向表中插入订单之前,我首先检查该订单是否存在

SELECT COUNT(*) total FROM orders WHERE transaction_id = "XXXXXXXXX"

但是有时候即使有订单存在,查询也会返回0。如果返回0,我会将订单插入到我的表中,最终将复制数据。

这个实例发生在我的其他PHP脚本中,我不理解这个问题。

3 个答案:

答案 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

该代码运行完美。如有其他疑问,请分享您的代码,我们非常乐意为您提供帮助。