MySQL更新命令不起作用

我一直在试图通过从iOS更新MySQL条目。 但是,xcode的模拟器拒绝更新值。 我把这个格式正确吗? (为了澄清,数据库名称是“login”和两个编程variables是整数(这不必格式不同吗?))

<?php $prog= $_GET['prog']; $prog1= $_GET['prog1']; $dbh = new PDO('(censored)'); $sql = "UPDATE login SET oneam = $prog, twelvefif = $prog1 WHERE username = 'hello'"; $q = $dbh->prepare( $sql ); $q; ?> 

或在Xcode …

 NSString *urlString = [NSString stringWithFormat:@"(censored)?prog=%@&prog1=%@", prog, prog1]; 

更改 –

 $prog= $_GET['prog']; $login = "hello"; $prog= $_GET['prog1']; 

 $prog= $_GET['prog']; $login = "hello"; $prog1= $_GET['prog1']; 

如果var有一个整数没有问题,你必须用安全单引号将你的variables表示出来,否则你必须使用单引号。

我知道你正在使用准备好的语句,这将处理这个,但无论如何,你可以尝试。

 $sql = "UPDATE login SET oneam = '$prog', twelvefif = '$prog1' WHERE username = 'hello'"; 

为了避免sql注入的问题,你应该把你的variables转换为int或绑定你准备好的语句中的variables(首选…):

 $prog = (int) $_GET['prog']; $prog1 = (int) $_GET['prog1']; 

除此之外,你必须实际执行准备好的声明,只是准备它是不够的:

 $q = $dbh->prepare( $sql ); $q->execute();