PHP MYSQL组合的转换问题

时间:2012-06-22 18:51:53

标签: php mysql sql casting

我认为我的投射有问题。

$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)的地方。我的印象是该行将作为变量数组返回,并使用正确的数字我可以访问我想要的变量。假设这是真的(让我知道它不是)然后我认为它是以INT形式读取ID,这就是我在SQL表中的内容。有人可以帮我把它变成字符串吗?或者我可能完全错过了这个问题?

2 个答案:

答案 0 :(得分:4)

使用方括号访问数组元素。

$currentRow[1]

记住第一个索引也是0。

答案 1 :(得分:1)

不投射。这些是数组索引,请注意方括号。 [ ]

   $currentRow = getRow($db, $old_table);
   $ID = $currentRow[1];
   $Partner = $currentRow[2];
   $Merchant = $currentRow[3];