php – mysqli bind_param给出错误:(1210)mysql_stmt_execute的
发布时间:2020-12-13 13:59:43 所属栏目:PHP教程 来源:网络整理
导读:我有这个完全相同的代码在另一台服务器上工作得很好: $mysqli_Cxn = new mysqli($SQL_HOST,$SQL_USER,$SQL_PASS,$SQL_DB);if($mysqli_Cxn-connect_errno){echo 'Unable to connect!!';exit();}$userID=12345;$userFirstName = 'Charley';$userLocale = 'en_
我有这个完全相同的代码在另一台服务器上工作得很好:
$mysqli_Cxn = new mysqli($SQL_HOST,$SQL_USER,$SQL_PASS,$SQL_DB); if($mysqli_Cxn->connect_errno){ echo 'Unable to connect!!'; exit(); } $userID=12345; $userFirstName = 'Charley'; $userLocale = 'en_US'; $sql = "UPDATE userProfile SET userFirstName=?,userLocale=? WHERE id=?"; if($stmt = $mysqli_Cxn->prepare($sql)){ if(!$stmt->bind_param('ssi',$userFirstName,$userLocale,$userID)){ echo "<br/><br/>Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error; } if($stmt->execute()){ totalAffected=$stmt->affected_rows; if($totalAffected>=1){ echo '<br/><br/>UPDATE OK: Affected rows = '. $totalAffected; } }else{ echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error; } } $stmt->close(); 该代码给出以下输出: 如果我改变这两行: $sql = "UPDATE userProfile SET userFirstName=?,userLocale=? WHERE id=?"; $stmt->bind_param('ssi',$userID); 到这个: $sql = "UPDATE userProfile SET userFirstName=?,userLocale='en_US' WHERE id=12345"; $stmt->bind_param('s',$userFirstName); …然后更新成功,我没有收到任何错误. 有人知道为什么我不能绑定多个param在这段代码? 我的代码在Centos 4.9,PHP 5.3.3,MySQL 5.0.91 / 5.0.91-community-log上完美运行 我需要在我当前的服务器上运行它,这是Centos 6.2,PHP 5.3.10,MySQL 5.0.95-community-log
我做了一些研究,似乎是在MySQL源代码中报告的错误,结合您的GCC版本和您使用的优化标志.
如果您不能更改MySQL版本,请尝试重新编译MySQL,并将您的CFLAGS添加到-fno-strict-aliasing. 有关详细信息,请参阅http://bugs.mysql.com/bug.php?id=48284 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |