栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

准备具有DEFAULT值的MySQL INSERT / UPDATE语句

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

准备具有DEFAULT值的MySQL INSERT / UPDATE语句

我知道的唯一“解决方法”是使用Coalesce()和Default(fieldname)

例如

$pdo = new PDO("mysql:host=localhost;dbname=test", 'localonly', 'localonly'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);$pdo->exec("  CREATE TEMPORARY TABLE foo (    id int auto_increment,    x int NOT NULL DEFAULT 99,    y DATETIME NOT NULL DEFAULT '2010-03-17 01:00:00',    z varchar(64) NOT NULL DEFAULT 'abc',    primary key(id)  )");$stmt = $pdo->prepare('  INSERT INTO    foo    (x,y,z)  VALUES    (      Coalesce(:x, Default(x)),      Coalesce(:y, Default(y)),      Coalesce(:z, Default(z))    )');$stmt->bindParam(':x', $x);$stmt->bindParam(':y', $y);$stmt->bindParam(':z', $z);$testdata = array(  array(null, null, null),  array(1, null, 'lalala'),  array(null, '2009-12-24 18:00:00', null));foreach($testdata as $row) {  list($x,$y,$z) = $row;  $stmt->execute();}unset($stmt);foreach( $pdo->query('SELECt id,x,y,z FROM foo', PDO::FETCH_NUM) as $row) {  echo join(', ', $row), "n";}

版画

1, 99, 2010-03-17 01:00:00, abc2, 1, 2010-03-17 01:00:00, lalala3, 99, 2009-12-24 18:00:00, abc


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/416725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号