2016-07-14 7 views
0
$query = $database->prepare("SELECT * FROM Users WHERE username=:username SET profilePicturePath=:pic"); 
$query->bindParam(":pic", $_FILES['profilePic']['name']); 
$pic = "hellow"; 
$query->bindParam(":username", $pic); 
$query->execute(); 

pic変数はテスト用です。とにかく、私はusername =:usernameが真であることを確認することができます、それは文のリセットにちょうど問題です。私が言ったように、文そのもの以外は何の問題もありません。私はmssql 2008データベースでphp7を使用しています。入力いただきありがとうございます!MSSQL UPDATE SELECTおよびSETクエリが機能しない

$query = $database->prepare("SELECT * FROM Users WHERE [email protected] SET [email protected]"); 
$pic = "hellow"; 
$query->bindParam("@pic", $pic); 
$query->bindParam("@username", $_SESSION['Username']); 
$query->execute(); 

は、ユーザーの作品から、すべてのSELECTが、これは以下のいずれかの動作しません:

EDIT はまだ動作しません、これでコードを置き換え

"UPDATE Users SET profilePicturePath = 'Silver Magic' WHERE Username = 'ekampel';" 
+0

':'を '@'に置き換えるようにしてください。例えば: - username = @ username –

+0

これは構文を更新することさえできません。 –

+0

@IvanStarostinそれでは、正しい構文は何でしょうか。 – Wyatt

答えて

0

としてクエリを試してみてください
"UPDATE Users SET [email protected] WHERE [email protected]" 
+0

そのクエリを試しても、データベース内の何も変更されていません。 – Wyatt

+0

SELECT * FROMユーザーが動作します。私はちょうどテストした。 – Wyatt

0

MSDNのページによると、SQLステートメントでの更新はSQL Serでは許可されていませんverのSELECT構文:https://msdn.microsoft.com/en-us/library/ms189499(v=sql.110).aspx。更新は、仕事ターゲット・データベース内のユーザーが、UPDATE権限を持っていることを確認するために、また

$query = $database->prepare("UPDATE Users SET profilePicturePath=:pic where username = :username"); 
$query->bindParam(":pic", $_FILES['profilePic']['name']); 
$query->bindParam(":username", $pic); 
$query->execute(); 

:更新の

$query = $database->prepare("SELECT * FROM Users WHERE username=:username"); 
$pic = "hellow"; 
$query->bindParam(":username", $pic); 
$query->execute(); 

と別: 次の2つの別々のステートメント、選択のための1つを行う必要があります。

USE target_database; ALTER ROLE db_datawriter ADD MEMBER user_name; 
関連する問題