使用php问题更新MySQL表


Updating MySQL table with php issue

我正在通过android向mysql服务器发送一些数据,试图更新一些细节。目前php端看起来像这个:

for($i=0; $i<(10); $i++){
for($k=0; $k<(10); $k++){
mysql_query("UPDATE sometable SET data_".$i."_".$k." = '10'
WHERE id = '".$_REQUEST['id']."'");
}
}

我必须使用循环,因为我将使用"data_x"样式构建许多通用类型的数据。遗憾的是,此布局没有似乎更新了数据库中的任何字段。

这个方法是创建某种类型的空间,还是只是在语句中读取时破坏一个完整的变量?

感谢

好的,关于当前迭代的几件事。

  1. 记录/输出您的错误
    `$res=mysql_query($query);if(!$res)日志(myslq_error());/*或者死亡或其他什么*/`
  2. 进行一次更新,而不是100次。
$query = "UPDATE sometable SET";
for($i=0; $i<(10); $i++){
    for($k=0; $k<(10); $k++){
        $query .= ' data_'.$i.'_'.$k.' = ''10'''
        if( !( $k == $i && $i == 10 ) ) $query .= ',';
    }
}
//see side note below
$query .= 'WHERE id = ' . mysql_real_escape_string( $_REQUEST['id'] ); 
$res = mysql_query( $query );
if( !$res ) do_something_with_error( mysql_error() );

100次更新可以让你的数据库/PHP愤怒,而你最不想要的就是一个愤怒的数据库。此外,这只在REQUEST中执行一个数组查找,而上面的代码执行100。(O(1)*100仍然是100)。


顺便说一句:仅仅因为某个东西应该是从安卓系统发送的,就没有理由期望它不需要正确地转义。记住Bobby Tables的教训!

我也不能强烈建议你重新考虑你的模式。这似乎是目前处理事情最简单的方法,但后来的开发人员(包括你自己)会想知道应该在那里存储什么。我做过这样的项目,但它们并不有趣。(另一方面,我不知道你的具体情况,所以我可能完全错了)。


这是在解决最初的复制粘贴错误:

PHP至少不能解析这一行:

for(ik=0; $i<(10); $i++) 

用美元符号改写:

for($i=0; $i<(10); $i++)

您调试代码了吗?

查询实际上有效吗?生成的字段"data_X_X"是否确实存在于表"sometable"中?

我的猜测是生成的字段名在您的表中不存在。