-1

別のテーブルからID値を保存しようとしていて、取得しています

注意: 配列から文字列への変換

行で

$sql2 = "Insert into relations (id, className) values ($result,'$_POST[className]')";

これは私のコードです:

$result = mysqli_query($con,"Select objectID from objects where objectName = '$_POST[relations]'");


if($result === FALSE) {
    die(mysqli_error()); // TODO: better error handling
}

$result = mysqli_fetch_assoc($result);
var_dump($result);

$sql = "Insert into classes (className) values ('$_POST[className]')";
$sql2 = "Insert into relations (id, className) values ($result,'$_POST[className]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
if (!mysqli_query($con,$sql2))
  {
  die('Error: ' . mysqli_error($con));
  }
print_r($_POST)

私のデバッグ出力は次のとおりです。

array(1) { ["objectID"]=> string(1) "2" } 
Notice: Array to string conversion in C:\xampp\htdocs\matcher\insertclass.php on line 16
Error: Unknown column 'Array' in 'field list'
4

3 に答える 3

2

問題は次のとおりです。

$result = mysqli_fetch_assoc($result);
...
$sql2 = "Insert into relations (id, className) values ($result,'$_POST[className]')";
                                                       ^^^^^^^

mysqli_fetch_assoc は配列を返し、それを別の文字列に直接詰め込みます。

于 2013-05-17T21:14:29.333 に答える
0

$result は配列だと思います

$result['objectID'] => "2"

$result の代わりに $result['objectID'] を使用します

$sql2 = "Insert into relations (id, className) values ($result['objectID'],'$_POST[className]')";
于 2013-05-17T21:13:59.757 に答える