mysql problem

Problems with the Windows version of XAMPP, questions, comments, and anything related.

mysql problem

Postby shrg18 » 31. May 2009 22:13

I cannot name the problem correctly, the situation is that when I apply a function to run sql insert, the following select * from table will miss the first row in the table.

Here is the script
Code: Select all

-- connection to the database works fine ----
$table1 = source table;
$table2 = target table;   

// fetch data from source table
$sql = sprintf("SELECT * FROM %s", $table1);
$rslt = mysqli_query($dbc, $sql) or die (mysqli_error($dbc));

if (mysqli_num_rows($rslt) > 0) {
   while($row = mysqli_fetch_array($rslt, MYSQLI_ASSOC)) {
      $field = $row['data'];      
      if (isset($data_array)) unset($data_array);
      $data_array['data'] = $field;      
               // apply insert function
      insert($localDatabase, $table2, $data_array);

// check the target table
$sql= sprintf("SELECT * FROM %s", $table2);
$rslt = mysqli_query($dbc, $sql) or die ("ERROR: " . mysqli_error($dbc) . " (query is $sql)");
$num = mysqli_affected_rows($dbc);
printf("mysqli_affected_rows num %s", $num);
printf("<br />");

// function to insert into table
function insert($database, $table, $data_array) {
   // connection
   // is array
   if (!is_array($data_array)) die ("not array");
   // chain the data string
   foreach($data_array AS $k => $v) {
      printf("%s => %s <br />", $k, $v);
      $fieldString .= $k . ",";
      $valueString .= "'" . $v . "',";
   $fieldString = substr($fieldString, 0, -1);
   $valueString = substr($valueString, 0, -1);

   // insert
   $sql = sprintf("INSERT INTO %s (" . $fieldString . ") VALUES (" . $valueString . ")", $table);
   mysqli_query($dbc, $sql);

When run it in the desktop's harddrive, the affected rows always missing the first record in the target table.
When run the same code on the web hoster's server, this problem does not show.

If do not use the insert function, this problem does not show.

I have tested quite a few ways trying to figure out the problem.

One solution is to place a "dummy" query inside the function, after the insert query, e.g. select * from table, it will solve the problem.

I use lunar pages in a shared environment. The xampp version is 1.7.0 in my desktop.
Posts: 43
Joined: 16. August 2007 13:59
Location: windsor, on, canada
Operating System: windows 8

Return to XAMPP for Windows

Who is online

Users browsing this forum: No registered users and 49 guests