2017-05-06 107 views
0
// Write details to the database 
//die("id = ".$country_id); id = au 
try 
{ 
    $sql = "INSERT INTO ldm_country (cId, cName) 
        VALUES(:cty_id, :cty_name)"; 
    $query = $conn->prepare($sql); 
    $query->execute(array(':cty_id'=>$country_id,':cty_name'=>$country_name)); 
} catch (PDOException $err) { 
    echo "Database Issue: " . $err->getMessage(); 
    $conn = null; 
    return; 
} 

执行时我得到PHP PDO错误,值被设置为0

数据库问题:SQLSTATE [23000]:完整性约束违规:1062重复条目 '0' 键 'PRIMARY'

但是$ country_id的值为“au”?

+0

发布表格的模式定义。 –

+0

表中的ID字段通常是整数。你确定2个字母的国家代码应该放入'cId'字段,而不是其他字段吗? – Barmar

+0

请在mysql控制台或PhpMyAdmin中执行此命令:SHOW CREATE TABLE ldm_country;并发布结果 –

回答

0

它看起来像这个问题可能是cId是一个整数字段,au是越来越强制为int,它被评价为0

如果是这样的情况下,要解决它,你将需要要么将数据库字段cId类型更改为类似varchar的内容,要么将int用作国家/地区ID。

+0

非常感谢Caleb。 – ScaryMinds