ホームページ  >  記事  >  バックエンド開発  >  CI フレームワークでデータベースを操作するために ajax を使用する際の問題

CI フレームワークでデータベースを操作するために ajax を使用する際の問題

WBOY
WBOYオリジナル
2016-06-23 13:44:38968ブラウズ

フロントデスク:

<script>//调用方法用ajax操作add_dbdata.phpvar xmlHttpfunction add_dbdata(str,str1){			//alert(str);	if (str=="")	{	document.getElementById("txtHint").innerHTML="";	return;	}	if (window.XMLHttpRequest)	{// code for IE7+, Firefox, Chrome, Opera, Safari	xmlhttp=new XMLHttpRequest();	}	else	{// code for IE6, IE5	xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");	}	xmlhttp.onreadystatechange=function()	{	if (xmlhttp.readyState==4 && xmlhttp.status==200)	{	document.getElementById("txtHint").innerHTML=xmlhttp.responseText;	}	}	//xmlhttp.open("GET","add_dbdata.php?q="+str,true);	//alert(str1);	//alert(str);		xmlhttp.open("GET","add_dbdata.php?q="+str,true);	   //xmlhttp.open("GET","<?=base_url()?>project_c/add_zijiedian/"+str1+str,true);  这样写,也不好使,不知道哪有问题 	xmlhttp.send();}


バックエンド操作データベース

<?phpheader("Content-type:text/html;charset=utf8");$q=$_GET["q"];$q=(int)$q;echo "<script>alter('kkkkkkk');</script> ";$con = mysql_connect('localhost', 'root', '');if (!$con) { die('Could not connect: ' . mysql_error()); }mysql_select_db("test", $con);mysql_query("set names utf8");//$sql = " SELECT * FROM ecm_acategory ";$sql = " insert into data (name) values('999')";echo $sql;$result = mysql_query($sql);mysql_close($con);?>



ローカルテストには CI は必要ありません。上記のパスをいくつか変更すると機能しません。何が起こっているのかわかりません。まず、ありがとうございます!


ディスカッションに返信 (解決策)

あなた

xmlhttp.open("GET","a11368ad9bfdd456520709c6fbfd3910project_c/add_zijiedian/"+str1+str,true);ブラウザでソースコードを見てください


SQL文は以下の通りです
	//插入预算表					$this->db->query("select @myLeft:=PLeft from constrproj where  ConstrProjName = '$dangqiandianname' ");										$this->db->query("UPDATE constrproj SET PRight = PRight + 2 WHERE PRight > @myLeft");										$this->db->query("UPDATE constrproj SET PLeft = PLeft + 2 WHERE PLeft > @myLeft");								$query3 = $this->db->query("select * from constrproj where ConstrProjID= ( SELECT min(ConstrProjID) from constrproj)");						$arr = $query3->result_array();					$ParentID = $arr[0]['ConstrProjID'];										//echo '<script>alert("'.$ParentID.'");</script>';							$this->db->query("INSERT INTO constrproj(ConstrProjName,PLeft,PRight,ParentID,KindLvl) VALUES('$zijiediandianname',@myLeft + 1, @myLeft +2,'$ParentID',1)" );										$query2 = $this->db->query("select * from constrproj");				    $result_count2 = count($query2->result());	



PLeftの値が取得できていないでしょうか?

PLeft を null にすることはできません PLeft 列に追加する負の値は @myLeft + 1 です

明らかに @myLeft は空の値 NULL です



先輩、ありがとう!
別の質問ですが、今挿入しましたが、データベースに混乱があります(ページのデフォルトのエンコードはutf-8で、データベースのエンコードはutf-8です)これはgetパラメータに関連していますか?そして、ajaxを使用します



最初の写真は、ページに値を代入し、コントロール層を呼び出しています

ありがとうございます


それはコード化けではなく、URL エンコード

保存する前にデコードする (urldecode)


私には才能がないので、アドバイスをお願いします。このように書くのは正しくないようです。データベースに接続できません




完了しました ありがとうございます!
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。