【问题标题】:Mysqli query not running - why not? [duplicate]Mysqli 查询未运行 - 为什么不运行? [复制]
【发布时间】:2015-07-10 12:02:25
【问题描述】:

在我的文档中,我收到了 $_GET,我处理并构建了我的查询这个数组。 然后我尝试运行它。我得到一个空白页。

if (isset($_GET['submit'])) {
		
		$skip = 0;
		foreach($_GET as $key => $value)
		{
			if($skip++ > 1) {
			    if(!empty($value))
			    {
			    	$link = new mysqli('IP-NUMBER', 'LOGIN', 'PASSWORD', 'DATABASE');

			        $values = explode("_", $key);
			    	$insert_query = "INSERT INTO texts (language, parent_id, text) VALUES (?, ?, ?)";
			    	
			    	if($stmt = $mysqli->prepare($insert_query)){
			    		$stmt->bind_param("sis", $values[0], $values[1], $value);
			    		$stmt->execute();
			    		$stmt->close();
			    	}

			    }
			}
		}
	}

if (isset($_GET['submit'])) {
		
		$skip = 0;
		foreach($_GET as $key => $value)
		{
			if($skip++ > 1) {
			    if(!empty($value))
			    {
			    	$link = new mysqli('IP-NUMBER', 'LOGIN', 'PASSWORD', 'DATABASE');
			    	
			        $values = explode("_", $key);
			    	$insert_query = "INSERT INTO texts (language, parent_id, text) VALUES ('".$values[0]."', ".$values[1].", '".$value."')";
			    	
			    	if ($result = $mysqli->query($insert_query)) {
			    		echo "Yes!";
			    	}

			    }
			}
		}
	}

以上都不起作用,都产生一个空白页。 是的,$value[1] 是一个 int。

我在这里犯了什么简单的菜鸟错误?

【问题讨论】:

  • 为什么:if($skip++ > 1) 您可能只想使用 if($skip >= 1) 并在 foreach 循环的末尾添加 $skip++
  • 您确定您在$_GET['submit'] 中有内容吗?在您的第一个 if 之前尝试 var_dump($_GET);,以确保您的 $_GET 变量看起来像。
  • 我希望第一个示例中出现空白页,因为您没有在页面上打印任何内容。

标签: php mysqli


【解决方案1】:

在第一个sn-p中,

if($stmt = $mysqli->prepare($insert_query))  // What is $mysqli?

$link 是您的连接对象。将$mysqli 替换为$link

【讨论】:

  • 那是菜鸟的错误... :) 谢谢!
猜你喜欢
  • 2014-05-31
  • 1970-01-01
  • 2013-08-05
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多