พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
PHP development / mysql_free_result() และ mysql_close()
Anan
Anan
Wed 27 Sep 2006 17:50:26

ขอบคุณครับที่กรุณาแนะนำ

 

*ทุกครั้งที่ทำการ select ข้อมูลเมื่อใช้งานเสร็จแล้วควรใช้ mysql_free_result() เพื่อคืน resource ให้กับระบบครับ แล้วก็ใช้ mysql_close() ทุกครั้งที่ไม่มีการใช้งาน mysql แล้วครับ*

 

ผมได้พยายามใส่

mysql_free_result()

กับ mysql_close()

ในส่วนต่างๆของโปรแกรมที่ผมเขียนแล้ว ปรากฎว่าขึ้น error

Parse error: parse error, unexpected T_STRING in c:\appserv\www\main\add\add_add.php on line 51

 

คิดว่าปัญหาของผมคือใส่ 2 ประโยคลงในโปรแกรมที่ผมเขียนไม่ถูกจุด จึงต้องขอคำแนะนำด้วยครับ

 

<?

error_reporting(E_ALL ^ E_NOTICE);

session_start();

 

$dbhost="localhost";

$dbname="company";

$dbuser="root";

$dbpass="";

 

if(trim($_POST['code']) !=($_SESSION['ses_code']))

{

   echo"<b>Code does not correct. </b>";

   echo"<a href=add_index.php><b>Please add your company again !</b>";

   exit;

}

 

$link=mysql_connect("localhost","root","");

if (!$link)

{

                print("Error");

}

else

{

                mysql_select_db("company",$link);

                $sql="select email1 from company where email1='$email1'";

                $res=mysql_query($sql, $link);

                $n=mysql_num_rows($res);

                if($n==0)

                {

                $sql="INSERT into company(company, cperson, address, country, phone, fax, email1, email2, web,

                productd, agri, alkohol, nonal, bakery, cannedfood, cereals, candies, sugar, coffee, condiments, foodin,

                fruits, dressings, meat, milk, oil, organic, pasta, ready, seafood, mail, dtnow)

               

                values('$company', '$cperson', '$address', '$country', '$phone', '$fax', '$email1', '$email2', '$web',

                '$productd', '$agri', '$alkohol', '$nonal', '$bakery', '$cannedfood', '$cereals', '$candies', '$sugar', '$coffee', '$condiments', '$foodin',

                '$fruits', '$dressings', '$meat', '$milk', '$oil', '$organic', '$pasta', '$ready', '$seafood', '$mail', )";

 

                $res=mysql_query($sql, $link);

                if($res==1)

                                print("Adding to database is OK.");

                else

                                print("Error adding to table.");

                }

                else

                {

                                print("This email already exists.");

                }

 

}

mysql_free_result()

mysql_close()

?>

 

แต่ถ้าไม่ใส่ 2 ประโยคนี้แล้ว จะไม่ error เกิดขึ้นครับ สามารถบันทึกข้อมูลลงในตาราง mysql ได้เลยครับ

 

ต้องขอคำแนะนำด้วยครับ

 

อนันต์

Administrator
Wed 27 Sep 2006 19:57:36
คุณลืมใส่ semi-colon (Wink เพื่อจบ statement ครับ
Anan
Anan
Wed 27 Sep 2006 20:17:24

ขอบคุณครับ

แต่ยังคงขึ้น error ดังนี้ครับ

Warning: Wrong parameter count for mysql_free_result() in c:\appserv\www\main\add\add_add.php on line 26
Adding to database is OK.

ผมเองคิดว่าเกิดจากจำนวนตัวแปรไม่เท่ากันในตอนที่ insert ข้อมูลก็ไม่ใช่ เพราะได้ลองนับแล้วว่ามี 31 ตัวแปร

หรือย้าย mysql_free_result จากบรรทัดล่าง ให้ไปอยู่ต่อหลังจากใช้ mysql select แล้ว ก็ยังเกิด Error เหมือนเดิมอีก

จึงต้องรบกวนช่วยแนะนำด้วยครับ

ผมมีคำถามอีกคำถามหนึ่งช่วยอธิบายด้วยครับว่า ทำไมหลังจากใช้ mysql select แล้ว ต้องคืน resource คืนสู่ระบบ โดยใช้คำสั่ง mysql_free_result ถ้าไม่คืนแล้วจะเกิดปัญหาอะไรหรือครับ

ขอคำแนะนำด้วยครับ

อนันต์

อนันต์

Administrator
Wed 27 Sep 2006 20:26:45
mysql_free_result() นั้นต้องส่งตัวแปร resource ที่ได้จากการ SELECT เป็น paramenter ครับ เพื่อที่ php จะได้ทำการ free resource ได้ถูกตัวครับ เช่น

$sql="select email1 from company where email1='$email1'";

$res=mysql_query($sql, $link);

$n=mysql_num_rows($res);

mysql_free_result($res);


mysql_free_result() จะใช้ได้กับตัวแปร resource ที่ได้จากการใช้คำสั่ง SELECT ในการ query เท่านั้นครับ ดังนั้นถ้าจะใช้ต้องใช้หลังจากจบการใช้งาน resource นั้นๆแล้วครับ


Anan
Anan
Thu 28 Sep 2006 08:11:36
ขอบคุณครับ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login