0

キャストに問題があると思います。

$db = mysqli_connect('127.0.0.1','root','password','test');
if (! $db) { die("Can't connect: " . mysqli_connect_error( )); }

$new_table = $_POST["newtablename"];
$old_table = $_POST["oldtablename"];
$numberRows = $_POST["numberrows"];
$startRow = $_POST["startrow"];
$counter = 0;

drop_table($db, $new_table);

create_table($db, $new_table);

for($counter = 0; $counter < $numberRows; $counter += 1)
{
   $currentRow = getRow($db, $old_table);
   $ID = $currentRow(1);
   $Partner = $currentRow(2);
   $Merchant = $currentRow(3);
}

function getRow($db, $old_table)
{
    $select = "SELECT ID, Partner, Merchant FROM " .$old_table;
    $q = mysqli_query($db, $select);
    $row = mysqli_fetch_row($q);

    return $row;
}



 function create_table($db, $new_table){
    $create = "CREATE TABLE " .$new_table. "(ID INT, Partner VARCHAR(20), Merchant       VARCHAR(30))";

    $q = mysqli_query($db, $create);
} 

 function drop_table($db,$new_table){
     $drop = "DROP TABLE IF EXISTS " .$new_table;
     $q = mysqli_query($db, $drop);
     } 

これは私が得るエラーです

致命的なエラー:関数名は、26行目のC:\ xampp \ htdocs \ myfiles\mysqli_combined_functions.phpの文字列である必要があります

26行目は、$ ID = $ currentRow(1)を設定した場所です。行が変数の配列として返されるという印象を受けており、適切な番号を使用して、必要な変数にアクセスできます。それが本当だと仮定すると(そうでない場合は教えてください)、私が持っているSQLテーブルにあるINTの形式でIDを読み取っていると思います。誰かが私がそれを文字列にキャストするのを手伝ってもらえますか?またはおそらく私は問題を完全に見逃していますか?

4

2 に答える 2

3

配列の要素にアクセスするには、角かっこを使用します。

$currentRow[1]

最初のインデックスも0になることを忘れないでください。

于 2012-06-22T18:53:16.450 に答える
1

キャストしていません。これらは配列インデックスです。角かっこに注意してください。[ ]

   $currentRow = getRow($db, $old_table);
   $ID = $currentRow[1];
   $Partner = $currentRow[2];
   $Merchant = $currentRow[3];
于 2012-06-22T18:54:07.037 に答える