0

我一直在尝试通过 php 从 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];
4

3 回答 3

0

为了安全起见,你必须用单引号括起你的变量,如果变量有一个整数没问题,否则你必须使用单引号。

我知道您正在使用准备好的语句,并且可以处理此问题,但无论如何您都可以尝试。

$sql = "UPDATE login SET oneam = '$prog', twelvefif = '$prog1' WHERE username = 'hello'"; 
于 2012-11-08T21:36:54.833 回答
0

改变 -

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

$prog= $_GET['prog'];
$login = "hello";
$prog1= $_GET['prog1'];
于 2012-11-08T06:21:59.023 回答
0

为避免 sql 注入问题,您应该将变量强制转换为int或绑定准备好的语句中的变量(首选...):

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

除此之外,您必须实际执行准备好的语句,仅准备它是不够的:

$q = $dbh->prepare( $sql );
$q->execute();
于 2012-11-08T21:40:04.027 回答