Ho convertito un'applicazione per utilizzare istruzioni preparate PDO piuttosto che mysqli e sto incontrando uno strano problema. Ho alcuni record nel database in cui è previsto che un campo sarà nullo. Non "null" (stringa) o "" (stringa vuota), ma NULL. Costruisco le mie domande in modo dinamico, così in passato, quando mi sono imbattuto in una variabile Null in un oggetto, mi piacerebbe creare la query come questa:Selezione di righe in cui un campo è nullo utilizzando istruzioni PDO PHP preparate e MySQL
WHERE fieldName is null;
E otterrei i risultati attesi quando il campo era nullo.
Ora con PDO, le mie query non restituiscono alcun risultato e non ricevo errori. Semplicemente non sta restituendo i record che mi aspetterei. Quando echo le query create e le eseguo direttamente in MySQL ottengo i risultati previsti, ma all'interno dell'applicazione non ci sono risultati restituiti.
Alcune delle cose che ho provato includono la creazione di query che assomigliano a questo:
WHERE fieldName is null;
o
WHERE fieldName <=> null;
Ho anche provato il preparato dichiarazione standard:
WHERE fieldName = :fieldName
e quindi vincolante con questo tipo di dichiarazioni:
$stmt->bindParam(":$field", $value);
$stmt->bindParam(":$field", $value, PDO::PARAM_NULL);
$stmt->bindParam(":$field", null, PDO::PARAM_NULL);
$stmt->bindValue(":$field", null, PDO::PARAM_NULL);
$stmt->bindValue(":$field", null, PDO::PARAM_INT);
Qualsiasi aiuto con questo sarebbe molto apprezzato. La mia versione PHP è 5.3.10 e MySQL è 5.5.22. Come una domanda a parte, non sono ancora chiaro sulla differenza tra bindParam e bindValue, quindi se ha senso includere nella tua risposta apprezzerei davvero qualche chiarimento sull'argomento ...
Domanda diversa, ma tutti gli avventurieri sono qui: http://stackoverflow.com/questions/1391777/how-do-i-insert-null-values-using-pdo –
Ho provato tutti i diversi suggerimenti da questa domanda e nessuno ha funzionato fino ad ora ... – cdwhatcott
Se stai inserendo o cercando su null, perché hai bisogno di parametrizzarlo? –