Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php bind_param()不';我不会被处决_Php_Mysql - Fatal编程技术网

Php bind_param()不';我不会被处决

Php bind_param()不';我不会被处决,php,mysql,Php,Mysql,我在mysqli和php上准备的语句有问题 我有一个表单,用户可以更改他们的电子邮件地址,但bind_param('si',$value,$value)似乎有问题 我已经尝试了不同的方法来修复它,但到目前为止没有任何效果。 我希望你能发现错误 编辑: 由于评论中的一些讨论,一些附加信息: 我已经尝试了很多方法来解决这个问题 try-catch没有错误,error\u报告没有错误 bind_param()不做任何事情,它只是跳出代码。bind_param()之后的所有内容都不会执行 由于@Vij

我在mysqli和php上准备的语句有问题

我有一个表单,用户可以更改他们的电子邮件地址,但bind_param('si',$value,$value)似乎有问题

我已经尝试了不同的方法来修复它,但到目前为止没有任何效果。 我希望你能发现错误

编辑:

由于评论中的一些讨论,一些附加信息:

  • 我已经尝试了很多方法来解决这个问题
  • try-catch没有错误,error\u报告没有错误
  • bind_param()不做任何事情,它只是跳出代码。bind_param()之后的所有内容都不会执行
  • 由于@Vijay Dohare,进一步的测试显示$ustmt为空
HTML表单

<form action="" method="post" name="emailReset" id="emailReset" class="form-reset">
  <input type="hidden" name="UID" id="UID" value="<?php echo $id; ?>">

  <label class="reset-label sr-only" for="newEmail">Neue E-Mail-Adresse</label>
  <input name="newEmail" id="newEmail" type="email" class="form-control" placeholder="Neue E-Mail-Adresse" required /><br />

  <label class="login-label sr-only" for="verifyEmail">E-Mail-Adresse wiederholen</label>
  <input name="verifyEmail" id="verifyEmail" type="email" class="form-control" placeholder="E-Mail-Adresse wiederholen" required /><br />

  <button name="emailReset" id="emailReset" class="btn btn-lg btn-primary btn-block" type="submit"><i class="fa fa-repeat"></i> E-Mail-Adresse &auml;ndern</button>
</form>
输出:

value from UID
value from email
value from email

EscNewEmail: escaped value from email

Con, yes
Con, yes

您可以使用以下代码检查数据库连接

echo nl2br($con->connect_errno ? 'Con, no.' : 'Con, yes' . "\n");
因为如果连接出现问题,连接将返回一个假值

我认为你正在和db建立连接

$con = new mysqli('localhost', 'user', 'pass', 'database');

因此,您使用的是
mysql.*
mysqli.*
?@Justinas您应该再次阅读第一句话…
不起作用
不是问题的正确描述。请提供可复制的示例和适当的说明。此表单中的这个问题与主题无关(为什么此代码不起作用?)。由于所讨论的功能在世界其他地方正常工作,这个问题是纯粹懒惰的结果。StackOverflow不是调试服务。请尝试
$ustmt->bind_参数('ss',$escapedNewEmail,$UID)
并删除
intval()
for
$\u POST['UID']
@Pred我已经尝试了很多事情,如果我知道为什么代码不起作用,我就不会问这个问题了。。。。。try-catch没有错误,error-u-reporting没有错误,绝对没有任何错误。使用以下代码设置连接:
try{$con=mysqli-u-connect($HOST,$USER,$PASSWORD,$DBNAME);$con->set-charset($charset);}catch(异常$e){echo$e->getMessage()}
plesae-try
var\u-dump($ustmt)如果这等于false,那么var_dump($ustmt)的连接结果肯定有问题。var_dump($con)的连接结果为NULL。var_dump($con)的连接结果为
对象(mysqli){2(19){[“受影响的行”]=>NULL[“客户端信息”]=>NULL[“客户端版本”]=>int(50012)[“连接错误”]=>int(0)[“连接错误”]=>NULL[“错误”=>NULL[“错误”=>NULL”[“错误列表”]=>NULL[“字段计数”]=>NULL[“主机信息”]=>NULL[“信息”]=>NULL[“插入id”]=>NULL[“服务器信息”]=>NULL[“服务器版本”]=>NULL[“状态”]=>NULL[“协议版本”]=>NULL[“线程id”]=>NULL[“警告计数”=>NULL}
$con = new mysqli('localhost', 'user', 'pass', 'database');