尝试存储来自另一个表的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'
答案 0 :(得分:2)
这是你的问题:
$result = mysqli_fetch_assoc($result);
...
$sql2 = "Insert into relations (id, className) values ($result,'$_POST[className]')";
^^^^^^^
mysqli_fetch_assoc返回一个数组,然后直接填入另一个字符串。
答案 1 :(得分:0)
var_dump($ _ POST ['className'])在该查询之前产生了什么?另外,$ _POST [className]可能根本不应该解析,因为它可能认为'className'是一个常量。请改写查询中的{$ _POST ['className']}。
答案 2 :(得分:0)
我认为$ result是一个数组
$result['objectID'] => "2"
使用$ result ['objectID']代替$ result
$sql2 = "Insert into relations (id, className) values ($result['objectID'],'$_POST[className]')";