首页 > 解决方案 > PHP 脚本中的 SQL 查询的“整数值不正确”

问题描述

以下查询在 SQL 中运行良好,但由于某种原因不能作为 PHP 中的 SQL 查询。错误信息如下:

不正确的整数值:'SELECT id FROM colors WHERE color =' for column databasenamenumbers. col_id在第 1 行

$redID = "SELECT id FROM colours WHERE colour = $red";

$populate = "INSERT INTO numbers (col_id) VALUES ('$redID')";

$result=$conn->query($populate);

数据库表 - 数字

数据库表 - 颜色

标签: phpsqlinteger

解决方案


您的填充查询不能接受 SQL 字符串作为 col_id。

$redIDSQL = "SELECT id FROM colours WHERE colour = '$red'";
$redIDQuery=$conn->query($redIDSQL);

$redIDArray=array();
while($redIDResult=mysqli_fetch_assoc($redIDQuery)){
    $redIDArray[]=$redIDResult['id'];
}

if(count($redIDArray)>0){
    $populateSQL = "INSERT INTO numbers (col_id) VALUES ('".implode("'),('",$redID)."')";
    $populateQuery=$conn->query($populateSQL);
}else{
    echo "redID could not be found with colour matching ".$red;
}

推荐阅读