使用 php 检查查询行数
check query row count with php
我很青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 中是否有我应该更新的行?如果没有这样的行 - 我想触发另一个查询以插入新行。
您应该首先通过在查询中传递参数来检查数据库,如果返回的计数大于 0 则更新,否则插入新行。
算法是这样的
$count= "SELECT count(*) as count FROM MyTargetTable WHERE Name='$name' AND SName = '$surname'" ;
if(count > 0)
$sql = // Your Update Query
else
$sql = //your insert query
希望对您有所帮助
您可以在 MySQL table 本身上设置 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";
然后绑定变量$sr
和$br
,如examples here.
所示
我很青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 中是否有我应该更新的行?如果没有这样的行 - 我想触发另一个查询以插入新行。
您应该首先通过在查询中传递参数来检查数据库,如果返回的计数大于 0 则更新,否则插入新行。
算法是这样的
$count= "SELECT count(*) as count FROM MyTargetTable WHERE Name='$name' AND SName = '$surname'" ;
if(count > 0)
$sql = // Your Update Query
else
$sql = //your insert query
希望对您有所帮助
您可以在 MySQL table 本身上设置 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";
然后绑定变量$sr
和$br
,如examples here.