私はPHPの知識がほとんどないAndroid開発者です。Google プッシュ通知を使用して正常に動作するアプリがあります。私が抱えている問題は、同じ電話が Google に登録されたときに、Google からの regID を DB に保存する必要があることです。アプリを電話に 4 回プッシュすると、DB に 1 台の電話を指す 4 行が表示されます。
DB をチェックして、特定の regID のレコードが存在するかどうかを確認しようとしています。これを行うために sqlsrv_has_rows() を使用しようとしています。以下のコードはコンパイルされますが、レコードが存在するかどうかに関係なくレコードを挿入しません。
誰が問題が何であるかを見ることができますか?
前もって感謝します、
マット
public function storeUser($companyid, $gcm_regid) {
$strCompanyID = strval($companyid);
$strRegID = strval($gcm_regid);
$serverName = "LOCALHOST\SQLEXPRESS";
$uid = "gcm";
$pwd = "gcm";
$databaseName = "gcm";
$connectionInfo = array(
"UID" => $uid,
"PWD" => $pwd,
"Database" => $databaseName
);
$db = sqlsrv_connect($serverName, $connectionInfo)
or die("Unable to connect to server");
$query = "
SELECT *
FROM GcmUsers
WHERE gcuRegID = " . $strRegID;
$resultQueryRegID = sqlsrv_query($db, $query);
if ($resultQueryRegID) {
$rows = sqlsrv_has_rows($resultQueryRegID);
if ($rows === true) {
//echo "There are rows. <br />";
} else {
// echo "There are no rows. <br />";
$queryInsert = "
INSERT INTO GcmUsers
(gcuCompanyID, gcuRegID)
VALUES
('$strCompanyID','$strRegID')
";
$result = sqlsrv_query($db, $queryInsert);
}
}
}
[編集1]
public
function storeUser($companyid, $gcm_regid) {
$strCompanyID = strval($companyid);
$strRegID = strval($gcm_regid);
$serverName = "LOCALHOST\SQLEXPRESS";
$uid = "gcm";
$pwd = "gcm";
$databaseName = "gcm";
$connectionInfo = array("UID" => $uid, "PWD" => $pwd, "Database" => $databaseName);
$db = sqlsrv_connect($serverName, $connectionInfo) or die("Unable to connect to server");
$sql = "SELECT * FROM GcmUsers where gcuRegID = ?";
// Initialize parameters and prepare the statement.
// Variables $qty and $id are bound to the statement, $stmt.
$stmt = sqlsrv_prepare($db, $sql, array(&$strRegID));
if (!$stmt) {
die(print_r(sqlsrv_errors(), true));
}
$result = sqlsrv_execute($stmt);
$rows = sqlsrv_has_rows($result);
if ($rows === true) {
// echo "There are rows. <br />";
} else {
// echo "There are no rows. <br />";
$queryInsert = "INSERT INTO GcmUsers ( gcuCompanyID, gcuRegID) values ('$strCompanyID','$strRegID')";
$result = sqlsrv_query($db, $queryInsert);
}
}
[編集2]
$sql = "SELECT * FROM GcmUsers where gcuRegID = ?";
// Initialize parameters and prepare the statement.
// Variables $qty and $id are bound to the statement, $stmt.
$stmt = sqlsrv_prepare( $db, $sql, array( &$strRegID));
if( !$stmt ) {
die( print_r( sqlsrv_errors(), true));
}
$result = sqlsrv_execute( $stmt );
if (sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
// Got rows
}else{
// Not rows
$queryInsert = "INSERT INTO GcmUsers ( gcuCompanyID, gcuRegID) values ('$strCompanyID','$strRegID')";
$result = sqlsrv_query($db, $queryInsert);
}