这个PHP代码有什么问题?

时间:2012-02-17 06:19:46

标签: php mysql

我想将数据合并到MySQL的{​​{1}}表中:

PHP

NB :“ cr_date ”列属于<?php function convertFromDateHM($str) { $tmp=$str; $Y=substr($tmp, 6,4); $M=substr($tmp, 3,2); $D=substr($tmp, 0,2); $H=substr($tmp, 13,2); $MN=substr($tmp, 18,2); $tmp=$Y.'-'.$M.'-'.$D.' '.$H.':'.$MN.':00'; return $tmp; } function mergeCompteRendu($compterendu) { $resultat=explode("\n",$compterendu); $connec = mysql_connect("192.168.1.123:3306","root", "mysqlroot"); mysql_set_charset('utf8', $connec); mysql_select_db("finance",$connec); for($i = 0; $i < count($resultat) ; $i++) { $valeur=explode(";",$resultat[$i]); if ($valeur[0] != '0') // case of update { $requete = mysql_query("UPDATE compte_rendu SET cr_date = '".convertFromDateHM($valeur[1])."', cr_lieu = '".$valeur[2]."', cred_id = '".$valeur[3]."', cr_resultat = '".$valeur[5]."', cr_comment = '".$valeur[6]."', adc_id = '".$valeur[7]."' WHERE cr_id = '".$valeur[0]."'"); // cr_id is the primary key which is auto_increment } else // case of insert : here is the problem raised { $requete = mysql_query("INSERT INTO compte_rendu(cr_date,cr_lieu,cred_id,cr_resultat,cr_comment,adc_id) SET cr_date = '".convertFromDateHM($valeur[1])."', cr_lieu = '".$valeur[2]."', cred_id = '".$valeur[3]."', cr_resultat = '".$valeur[5]."', cr_comment = '".$valeur[6]."', adc_id = '".$valeur[7]."' "); } } return $resultat[0]; } datatype

datetime是我PHP客户端调用的webservice。当我运行应用程序时,记录未插入数据库(我通过SQLYog检查)。 J2ME的情况导致问题,insert没问题。

我的代码出了什么问题?

2 个答案:

答案 0 :(得分:0)

如果(cr_date,cr_lieu,cred_id,cr_resultat,cr_comment,adc_id)使用INSERT

,则无需指定列SET

尝试下面的内容:

 $requete = mysql_query("INSERT INTO compte_rendu SET
                          cr_date= '".convertFromDateHM($valeur[1])."',
                          cr_lieu = '".$valeur[2]."',
                          cred_id= '".$valeur[3]."',
                          cr_resultat = '".$valeur[5]."',
                          cr_comment = '".$valeur[6]."',
                          adc_id = '".$valeur[7]."' ");

或者您可以使用:

$requete = mysql_query("INSERT INTO compte_rendu(cr_date,cr_lieu,cred_id,cr_resultat,cr_comment,adc_id) VALUES (
                                        '".convertFromDateHM($valeur[1])."',
                                        '".$valeur[2]."',
                                        '".$valeur[3]."',
                                        '".$valeur[5]."',
                                        '".$valeur[6]."',
                                        '".$valeur[7]."' )");

答案 1 :(得分:0)

代码中的插入查询语法错误。您应该使用以下任一形式。

INSERT into TABLE_NAME SET column_name1='value1',column_name2='value2'

,或者

INSERT into TABLE_NAME (column_name1,column_name2) VALUES('value1','value2')

但是在你的代码中你混淆了插入语法,所以它不起作用。您可以使用die(mysql_error())查看MySQL生成的确切错误。