Php MySQLi没有显示任何错误
我已经试着解决这个问题好几个小时了,只是不知道我做错了什么。循环不会循环(没有任何内容被回送),但是当我在phpmyadmin中运行查询时,它工作得很好。 数据库信息也很好。 不幸的是,mysqli根本没有输出任何错误 非常感谢您的帮助Php MySQLi没有显示任何错误,php,mysql,mysqli,Php,Mysql,Mysqli,我已经试着解决这个问题好几个小时了,只是不知道我做错了什么。循环不会循环(没有任何内容被回送),但是当我在phpmyadmin中运行查询时,它工作得很好。 数据库信息也很好。 不幸的是,mysqli根本没有输出任何错误 非常感谢您的帮助 <?php ini_set('display_errors', '1'); error_reporting(E_ALL); set_time_limit(0); $db = new mysqli('localhost', 'xxx', 'xxx', 'x
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
set_time_limit(0);
$db = new mysqli('localhost', 'xxx', 'xxx', 'xxx');
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
$sql = <<<SQL
SELECT * FROM
`zips`
SQL;
if(!$result = $db->query($sql,MYSQLI_STORE_RESULT)){
echo $result->num_rows; // nothing outputted here
while($row = $result->fetch_assoc()){
$zip = $row['zip'];
$url = "http://www.webservicex.net/uszip.asmx/GetInfoByZIP?USZip=".$zip;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
$xmlobj = simplexml_load_string($result);
$city = $xmlobj->Table->CITY;
$state = $xmlobj->Table->STATE;
$timezone = $xmlobj->Table->TIME_ZONE;
$areacode = $xmlobj->Table->AREA_CODE;
echo "city:" . $city;die();
$sql2 = <<<SQL
INSERT INTO zips
(zip,city,state,timezone,areacode)
VALUES('{$zip}','{$city}','{$state}', '{$timezone}', '{$areacode}')
SQL;
if(!$result2 = $db->query($sql2)){
die('There was an error running the query [' . $db->error . ']');
}
}
} else {
die('There was an error running the query [' . $db->error . ']');
}
这是您的问题伙伴
echo "city:" . $city;die(); ///script stops.
.....
if(!$result2 = $db->query($sql2)){
在这个块中运行查询之前,它将提前结束脚本
从技术上讲,你也可以不受惩罚
if(!$result2 = $db->query($sql2)){
但是很难读懂(双重否定),我会改成这样
if(false === ($result2 = $db->query($sql2))){
正如你所说的,你说的是如果(!false==true)
,它将传递假值并输出错误ect
正如你的常识所提到的,你可能不在这个块中,但是在不知道第一个查询的结果是什么的情况下,(在发布的代码块中运行需要为false),很难说。第一个查询可能是错误的
if(!$result = $db->query($sql,MYSQLI_STORE_RESULT)){
.....
为了进一步解释,上面的行需要返回false,然后使用
not如果它下面的if块中的代码能够运行,则为true。但是,在这种情况下(如果不是false),将生成此输出
....
} else {
die('There was an error running the query [' . $db->error . ']');
}
更可能是错误的组合。这是您的问题伙伴
echo "city:" . $city;die(); ///script stops.
.....
if(!$result2 = $db->query($sql2)){
在这个块中运行查询之前,它将提前结束脚本
从技术上讲,你也可以不受惩罚
if(!$result2 = $db->query($sql2)){
但是很难读懂(双重否定),我会改成这样
if(false === ($result2 = $db->query($sql2))){
正如你所说的,你说的是如果(!false==true)
,它将传递假值并输出错误ect
正如你的常识所提到的,你可能不在这个块中,但是在不知道第一个查询的结果是什么的情况下,(在发布的代码块中运行需要为false),很难说。第一个查询可能是错误的
if(!$result = $db->query($sql,MYSQLI_STORE_RESULT)){
.....
为了进一步解释,上面的行需要返回false,然后使用
not如果它下面的if块中的代码能够运行,则为true。但是,在这种情况下(如果不是false),将生成此输出
....
} else {
die('There was an error running the query [' . $db->error . ']');
}
更可能是错误的组合。这应该是可行的。您如何将此用作,http://localhost
或文件://
?看起来您的用户名和密码都是x,但我会打开显示错误ini\u集(“显示错误”,1)代码>@ArtisticPhoenix's用于隐藏真实凭证,PHP是一种松散类型的语言。@Machavity:heredocs有什么问题?更改字符串的生成方式不会更改字符串<代码>$x='foo'
和$x=@YourCommonSense对于你发布的副本的回答非常讽刺,我引用你的话:“使用die()或echo或任何其他函数无条件地在屏幕上打印错误消息。PHP已经可以无需帮助地回显了。”-OP确实使用了die()
,一开始就不应该用它。我重新提出了这个问题。这应该行得通。您如何将此用作,http://localhost
或文件://
?看起来您的用户名和密码都是x,但我会打开显示错误ini\u集(“显示错误”,1)代码>@ArtisticPhoenix's用于隐藏真实凭证,PHP是一种松散类型的语言。@Machavity:heredocs有什么问题?更改字符串的生成方式不会更改字符串<代码>$x='foo'
和$x=@YourCommonSense对于你发布的副本的回答非常讽刺,我引用你的话:“使用die()或echo或任何其他函数无条件地在屏幕上打印错误消息。PHP已经可以无需帮助地回显了。”-OP确实使用了die()
,一开始就不应该用它。我重新开始了这个问题。这里不是我的反对票,但我可以做出一个真正的疯狂猜测,这是从哪里来的。OP明确表示,他们没有看到任何结果。虽然这段代码至少应该说出“城市:”这个词:@yourcomsense,那么你为什么不回答关于结束问题的问题呢?应该重新开放。依我拙见如果你不这样做,那么我会,也不会继续,当我这样做的时候,你会因为这个问题而被击倒或被标记。这是因为骰子在sql查询之前,换句话说,由于骰子放错了位置,脚本没有执行sql就结束了。因此,没有sql被执行,因此没有错误或成功的可能。不可能,我觉得我仍然是正确的。如果是这样的话,其他代码都不会执行。意识到这是唯一的代码,我们必须假设一些输出是由该块生成的,因为回声城是一个安全的赌注。要么将城市
作为输出,要么将此错误die('运行查询时出错['.$db->error.]')代码>来自第一个查询块。正如他们所说,没有错误,我的假设是安全的。我在这里没有投反对票,但我可以做出一个真正的猜测,从哪里来。OP明确表示,他们没有看到任何输出。虽然这段代码至少应该说出“城市:”这个词:@yourcomsense,那么你为什么不回答关于结束问题的问题呢?应该重新开放。依我拙见如果你不这样做,那么我会,也不会继续,当我这样做的时候,你会因为这个问题而被击倒或被标记。这是因为骰子在sql查询之前,换句话说,由于骰子放错了位置,脚本没有执行sql就结束了。因此,没有sql被执行,因此没有错误或成功的可能。不可能,我觉得我仍然是正确的。如果是这样的话,其他代码都不会执行。意识到这是唯一的代码,我们必须假设一些输出是由该块生成的,因为回声城是一个安全的赌注。要么他们得到城市