"不能通过引用传递参数2" PHP中的错误

时间:2017-09-13 02:01:50

标签: php mysql

当我运行此代码以更新我的likesOne列并将其设为空("")....

    $sql11 = $conn->prepare("UPDATE UserData SET likedOne=? WHERE username=?");
    $sql11->bind_param('ss',"",$Username);
    $Username = "netsgets";
    $sql11->execute();

我收到此错误....

1 Fatal error: Cannot pass parameter 2 by reference in /xxx/xxx/xxx/test.php on line 36. 

这条线是....

$sql11->bind_param('ss',"",$Username);

出了什么问题?

3 个答案:

答案 0 :(得分:3)

您需要使用变量,bind_param只接受变量而不是直接值。

   $likedone ="";
   $sql11->bind_param('ss',$likedone,$Username);

答案 1 :(得分:1)

bind_param(...)期望其param参数作为参考。 See。这意味着它可能会改变它们(例如,当它们引用查询结果时)。每当你传递一些东西作为参考时,你必须给它一个名字(草率的经验法则,但更容易解释)。在某种程度上,这只是告诉PHP你关心潜在的修改(再次简化)。您可以使用$emptyString = ""; $sql11->bind_param('ss',$emptyString ,$Username);

答案 2 :(得分:-2)

对不起我之前的回答

您可以通过更改

来修复它
 $sql11->bind_param('ss',"",$Username);

$variable ="";
$sql11->bind_param('ss',$variable,$Username);

因为bind_param更适合变量