php - 使用 php 检查查询行数

标签 php mysql pdo insert-update

我对 PHP 很陌生。我需要在服务器端创建一个小型服务来获取数据、转换数据并将其填充到 MySQL 数据库中。

到目前为止一切都很好。我设法创建了 PHP 脚本来更新数据库中的现有行。

我在检查是否需要更新或添加行时遇到困难。你能帮我吗?

$servername = "localhost";
$username = "almazini";
$password = "3334444";
$dbname = "almazini";

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

然后我循环遍历我的数组...并执行 SQL 查询:

$sql = "UPDATE MyTargetTable SET SRate = $sr, BRate = $br WHERE Name='$name' AND SName = '$surname' ";
$stmt = $conn->prepare($sql);
$stmt->execute();

如何检查 MyTargetTable 中是否有需要更新的行?如果没有这样的行 - 我想触发另一个查询来插入新行。

最佳答案

您可以在 MySQL 表本身上设置 UNIQUE 约束,以不允许重复值。从 mysql 连接控制台运行以下命令:

ALTER TABLE MyTargetTable
ADD UNIQUE INDEX FullName (Name, SName);

接下来,使用INSERT ... ON DUPLICATE KEY UPDATE查询:

$sql = "INSERT INTO MyTargetTable VALUES (what, ever, values, here)
ON DUPLICATE KEY UPDATE SRate = :sr, BRate = :br";

然后绑定(bind)变量$sr$br,如examples here所示.

关于php - 使用 php 检查查询行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34410077/

相关文章:

php - 从推送通知谷歌日历上的资源 ID 获取事件信息

php - 使用 PHP 显示网页今天、月份和年份的 View ,无需添加到数据库

php - 多行之间的MySQL比较

php - 几个模拟连接对数据库的影响

php - PDO 数组从 MySQL 查询到插入查询

php如何划分while循环结果列表

MySQL - 在一个语句中从查询更新表字段

mysql - 左连接,每个左条目只有 1 行

mysql - 计算至少由两位作者撰写的已接受论文的总数

php - 如何将动态构造的 ext/mysql 查询转换为 PDO 准备语句?