2010-06-17 23 views
1

我試圖調試一些自動生成的代碼,但我是一個mySQL noob。一切都很好,直到下面的「準備」一行,然後出於某種原因,$ mysqli_stmt是錯誤的,從而產生了錯誤。它可能與SQL_MODE ='ANSI'有關嗎?失敗似乎與下面的字符串'xxx'有關,但無論我改變它,仍會發生。這個值是TickerDigest字段的默認值,但奇怪的是,如果我將'xxx'更改爲'c_u_TickerDigest',那麼它突然生效,但當我查看數據庫時,TickerDigest字段被插入爲'null'。如何在PHP/MySQL準備語句中正確指定字符串字段的默認值

$mysqli = mysqli_init(); 
    $mysqli->options(MYSQLI_INIT_COMMAND, "SET SQL_MODE = 'ANSI'"); 
    $mysqli->real_connect(SR_Host,SR_Username,SR_Password,SR_Database) or die('Unable to connect to Database'); 
    $sql_stmt = 'INSERT INTO "t_sr_u_Product"("c_u_Name", "c_u_Code", "c_u_TickerDigest") VALUES (?, ?, "xxx")'; 
    $mysqli_stmt = $mysqli->prepare($sql_stmt); 

致命錯誤:未捕獲的異常 '異常' 有消息「INSERT INTO 「t_sr_u_Product」( 「c_u_Name」, 「c_u_Code」, 「c_u_TickerDigest」)VALUES(,, 「XXX」?):準備語句失敗:第18行P:\ StarRise \ SandBox \ GateKeeper \ Rise \ srIProduct.php中'未知列'xxx''字段列表中

我希望發生什麼問題很簡單,因爲我差不多完全不瞭解SQL。

回答

相關問題