我一直在尝试通过iOS从iOS更新mysql条目。但是,xcode的模拟器拒绝更新值。我格式化了吗? (澄清一下,数据库名称是“login”,两个prog变量是整数(不必格式化不同吗?)
<?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];
答案 0 :(得分:0)
改变 -
$prog= $_GET['prog'];
$login = "hello";
$prog= $_GET['prog1'];
要
$prog= $_GET['prog'];
$login = "hello";
$prog1= $_GET['prog1'];
答案 1 :(得分:0)
如果var有一个整数没有问题,你必须使用单引号来保护你的变量,否则你必须使用单引号。
我知道你正在使用准备好的陈述并处理这个问题,但无论如何你可以试试。
$sql = "UPDATE login SET oneam = '$prog', twelvefif = '$prog1' WHERE username = 'hello'";
答案 2 :(得分:0)
为避免sql注入问题,您应该将变量转换为int
或绑定预准备语句中的变量(首选...):
$prog = (int) $_GET['prog'];
$prog1 = (int) $_GET['prog1'];
除此之外,您必须实际执行准备好的声明,仅仅准备它是不够的:
$q = $dbh->prepare( $sql );
$q->execute();