【发布时间】:2019-03-09 10:16:38
【问题描述】:
// STORED PROCEDURE NAME: insertName, _id 是一个自动增量
try {
$sql = "CALL insertName(:_id, :_name)";
$res = $pdo->prepare($sql);
$res -> bindValue(":_id","NULL");
$res -> bindValue(":_name",$name);
$res->execute();
$res->setFetchMode(PDO::FETCH_ASSOC);
} catch( PDOException $e ) {
die( "ERROR ..." .$e->getMessage());
}
//如果我尝试直接插入一个数字,一切正常
try {
$sql = "CALL insertName(:_id, :_name)";
$res = $pdo->prepare($sql);
$res -> bindValue(":_id",1);
$res -> bindValue(":_name",$name);
$res->execute();
$res->setFetchMode(PDO::FETCH_ASSOC);
} catch( PDOException $e ) {
die( "ERROR ..." .$e->getMessage());
}
//即使我不使用存储过程尝试这个也可以
try {
$sql = 'INSERT INTO (id,name) VALUES (NULL,"'.$name.'" )';
$res = $pdo->prepare($sql);
$res->execute();
} catch( PDOException $e ) {
die( "ERROR ..." .$e->getMessage());
}
【问题讨论】:
-
"NULL"是字符串而不是 mysqlNULL -
我尝试使用没有“”的 NULL 并且不要给我错误。问题是没有将结果插入数据库。当我在 NULL 位置使用数字时,它会起作用