簡體   English   中英

PHP mysql PDO 拒絕設置 NULL 值

[英]PHP mysql PDO refuses to set NULL value

我無法使用 mysql pdo 將默認值為 null 的可空字段設置為 null。 我可以使用直接的 sql 來完成。

我試過:(主要來自這個問題How do I insert NULL values using PDO?

  1. 空整數

    bindValue(':param', null, PDO::PARAM_INT);
  2. 空空

    bindValue(':param', null, PDO::PARAM_NULL);
  3. '空',整數

    bindValue(':param', 'NULL', PDO::PARAM_INT);
  4. '空',空

    bindValue(':param', 'NULL', PDO::PARAM_NULL);
  5. 空值

    bindValue(':param', null);
  6. '空值'

     bindValue(':param', 'NULL');
  7. 和 5 和 6 的bindParam對應物,帶有一個保存綁定值的變量。

PDO 中的所有內容都會將該值設置為 0。

PHP 版本: PHP 5.3.2-1ubuntu4.10

MYSQL 服務器版本: 5.1.63-0ubuntu0.10.04.1

編輯列信息的屏幕截圖

圖片

以下對我有用:

<?php

$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "pass");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$stmt = $pdo->prepare("INSERT INTO `null_test` (`can_be_null`) VALUES (:null)");
$stmt->bindValue(":null", null, PDO::PARAM_NULL);

$stmt->execute();

PDO::PARAM_NULL PHP 的null ,類型為PDO::PARAM_NULL 此外,請確保您的准備模擬設置為 false。 那可能會有所幫助。

我強烈建議首先將所有參數分配給變量,然后將這些變量傳遞給bindParam()方法。

您可以通過將 NULL 傳遞給這些變量來分配,它會正常工作。

$myVar = NULL;
$conn->bindParam(':param1' , $myVar , PDO::PARAM_STR);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM