הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה בהכנסה למסד מקובץ CSV (https://hosts.co.il/forums/showthread.php?t=104696)

dabi 24-07-13 13:23

בעיה בהכנסה למסד מקובץ CSV
 
יצרתי קובץ CSV עם ערכים בעיברית
הנה הקוד שפשוט קורא אותו ומכניס למסד את המידע
המסד והקובץ מקודדים כ UTF 8
הבעיה שאת הערך שאני שולף מה CSV הוא מכניס למסד ריק!
הנה הקוד
PHP קוד:

 <?php
$host 
"localhost" ;
$dbuser "root" ;
$dbpass "" ;
$dbname "tel" ;
$connect mysql_connect($host$dbuser $dbpass) or die("coulden't connetct!");
$db=mysql_select_db($dbname,$connect)or die ("coulden't find db".mysql_error());

mysql_query("SET NAMES 'UTF8'");



$file_handle fopen('A.csv','r');

while(
$values fgetcsv($file_handle))
{

    foreach(
$values as $value)
    {
        echo(
$value);
        
        
$query "INSERT INTO `questions3`  (first_name,last_name) VALUES  ('$value','דשגד')"
        
$result mysql_query($query)or die("Query failed: " mysql_error());
    }
    
}
fclose($file_handle);

?>

כל שורה אני מכניס גם את "דשגד" סתם לצורך בדיקה
עכשיו מה שקורה שהערך $value הוא ניכנס למסד ריק
והטקסט בעיברית ניכנס כמו שצריך

למה בבקשה
? למה הערך ניכנס למסד ריק? הרי אם אני מציג את הערך שהוצאתי מה CSV אני כן מצליח להציג אותו
רק כשהוא ניכנס למסד הוא ניכנס ריק
מוזר מאוד מאוד

DoLet 30-07-13 23:56

תנסה לעשות ".$value." או פשוט {$value}

kobisl 31-07-13 13:50

תנסה את mysql_real_escape_string
אם זה לא עוזר אז כנראה שזה בגלל בעיות של קידוד, תנסה להשתמש בפונקציה file_get_contents במקום fopen ו fgetcsv, זה ידרוש ממך קצת להבין איך בנוי קובץ CSV כדי לעבור על כל הנתונים (\n לשורה הבאה ו \t לעמודה הבאה).

דוגמה (לא בדקתי אותה):
PHP קוד:

$file_content file_get_contents('A.csv');
$rows=explode("\n",$file_content);
foreach(
$rows as $id=>$value)
{
$row=explode("\t",$value);
$first_name=mysql_real_escape_string($row[0]);
$query "INSERT INTO `questions3`  (first_name,last_name) VALUES  ('{$first_name}','דשגד')"
$result mysql_query($query)or die("Query failed: " mysql_error()); 




כל הזמנים הם GMT +2. הזמן כעת הוא 09:58.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ