未定义的索引数据类型为tinyint和nchar

时间:2013-11-19 02:47:51

标签: php mysql

我有2个主键和1个外键的表。问题是当我想向表中插入数据时,但是发生了一些错误。

这是我的mysql关系表 my sql table

数据类型PiorityPhonePerson是tinyint,CodePhonePerson是nchar。

这是我的php数据:

<?
include "new.php";

$ID_Person              =  $_POST['IDPerson']; 
$Number_Phone_Person    =  $_POST['NumberPhonePerson']; 
$Piority_Phone_Person   =  $_POST['PiorityPhonePerson']; 
$Code_Phone_Person      =  $_POST['CodePhonePerson']; 


$response           =  array();

if (isset($ID_Person)               &&
isset($Number_Phone_Person)     &&
isset($Piority_Phone_Person)    &&
isset($Code_Phone_Person)       
) 
 {

$query      = "INSERT INTO T_Person_Phone 
                (
                ID_Person,
                Number_Phone_Person,        
                Piority_Phone_Person,   
                Code_Phone_Person
                )
                VALUES 
                (
                (SELECT ID_Person FROM T_Person
                where ID_Person     = '$ID_Person'),

                '$Number_Phone_Person', 
                '$Piority_Phone_Person',
                '$Code_Phone_Person'
                )
                ";

$hasil      = sqlsrv_query($conn,$query,$response);
    if($hasil)
{   

    $response["success"] = 1;
    $response["message"] = "User successfully created.";

}   else
{
    $response["success"] = 0;
    $response["message"] = "Eksekusi error.";    
     die( print_r( sqlsrv_errors(), true));
}

    }   else 
    {
    $response["success"] = 0;
$response["message"] = "failed to save.";
    }
// echoing JSON response
echo json_encode($response);
    ?>

当我尝试执行时,它无法插入到我的表中。 请帮帮我。

2 个答案:

答案 0 :(得分:0)

在INSERT中查看您的查询如果您选择要为查询提供的值,那么这样做是没有意义的:

$query = "INSERT INTO T_Person_Phone (
         ID_Person,
         Number_Phone_Person,
         Piority_Phone_Person,
         Code_Phone_Person
         )
         VALUES(
         '$ID_Person',
         '$Number_Phone_Person',
         '$Piority_Phone_Person',
         '$Code_Phone_Person')"

答案 1 :(得分:0)

究竟是什么错误?

如果不知道确切的错误,我们就会在黑暗中刺伤问题。你能不能把这两行放在PHP页面的顶部?

error_reporting(E_ALL);
ini_set('display_errors', '1');

让我们知道错误是什么,然后我们可以建议:)