簡體   English   中英

為什么PHP mysqli Prepared語句可以工作但插入所有NULL值?

[英]Why is PHP mysqli prepared statement working but inserting all NULL values?

是什么原因造成的? 代碼如下:

$m = new mysqli($host,$user,$pass,$db);
if(mysqli_connect_errno()) die('Connect failed: ' . mysqli_connect_error());
$PrepSQL  = "INSERT INTO Products (" . implode(',',$this->cols) . ") VALUES (";
$PrepSQL .= '?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$stmt = $m->prepare($PrepSQL);
if(!$stmt) die('Could not prepare: ' . $m->error . "\n$PrepSQL\n");
$ret = $stmt->bind_param('isissssddssssssssssssssssssssssssisssssss',
      $contents[0], ... bunch of these here ... );
if(!$ret) die('bind_param failed: ' . $m->error);

然后在循環中,我有:

$contents = explode('|',$NL); // NL is pipe delimited data
print_r($contents); 
if(!$stmt->execute()) die("Statement failed: " . $m->error);

而且腳本不會停止,但是在MySQL中每個值都為null。 大多數類型是字符串,即使數字類型錯誤,我也認為它們至少會填寫。 print_r正確打印值。

您可以顯示從准備語句到執行語句的完整代碼嗎?

我懷疑第一部分中的$ contents與第二部分中的$ contents不同。 它們需要是對同一數組的引用,因為您是在通過引用綁定它之后填充它的。

暫無
暫無

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

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