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 ได้เลยครับ
ต้องขอคำแนะนำด้วยครับ
อนันต์
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 ถ้าไม่คืนแล้วจะเกิดปัญหาอะไรหรือครับ
ขอคำแนะนำด้วยครับ
อนันต์
อนันต์
$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 นั้นๆแล้วครับ
Thu 28 Sep 2006 08:11:36

















