$con = mysqli_connect($host,$uname,$opw,$odb); //database login details
// Check connection
if (mysqli_connect_errno()) //if you cannot access the database
{
echo "Failed to connect to MySQL: " . mysqli_connect_error(); //useful error message
}
$result = mysqli_query($con,"SELECT * FROM PetLoc");
if (!$result) { // add this check.
die('Invalid query: ' . mysqli_error());
}
while($row = mysqli_fetch_assoc($result))
{
if($row['Location'] == 'inside')
{
$sql = ("INSERT INTO PetLoc (Location) VALUES ('outside')");
sendText("outside");
}
else
{
$sql =("INSERT INTO PetLoc (Location) VALUES ('inside')");
sendText("inside");
}
}
function sendText($petLoc) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "smsserver");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
$data = array(
'mphone' => 'phoneno',
'smstext' => 'Your pet walked through the door flap, it was last seen '.$petLoc.'.',
'username' => 'uname'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
curl_close($ch);
echo "Output".$output ;
}
mysqli_close($con);
此代码正在检查“位置”的内容。我的sql server中的列,如果内容是' inside'它应该改为外面的'反之亦然。然后发送字符串' out / inside'到sendText方法,它将在文本消息中使用响应。
问题是服务器内没有数据被更改,我在连接上没有错误,因此连接正常,但无法插入数据库。
在运行这个PHP文件时,除了OutputReturnCode 1之外我没有得到任何反馈 - 但这是来自curl实现,告诉我文本没有被发送。
感谢任何帮助, 欢呼声。
答案 0 :(得分:0)
问题是服务器内没有数据被更改,我在连接上没有错误,因此连接正常,但无法插入数据库。
那是因为您的代码中没有mysqli_query()
。
<强>解决方案强>
while($row = mysqli_fetch_assoc($result))
{
if($row['Location'] == 'inside')
{
$sql = "INSERT INTO PetLoc (Location) VALUES ('outside')";
mysqli_query($con, $sql);
sendText("outside");
}
else
{
$sql =("INSERT INTO PetLoc (Location) VALUES ('inside')");
mysqli_query($con, $sql);
sendText("inside");
}
}